C 比较字符串的总值?
假设我有两条线 输入1:“xyz789”C 比较字符串的总值?,c,string,C,String,假设我有两条线 输入1:“xyz789” 输入2“mno123” 是否有方法比较它们的值,然后输出S1是否大于、等于或小于S2 我只是用标准的lib手工操作,到目前为止,我只需要检查它们的长度(这是一个安全的假设,一个更长的字符串会更大,但是比较相似的长度会更难) int compare_string(char *s1, char *s2) { while(*s1==*s2) { if ( *s1 == '\0' || *s2 == '\0' ) bre
输入2“mno123” 是否有方法比较它们的值,然后输出S1是否大于、等于或小于S2 我只是用标准的lib手工操作,到目前为止,我只需要检查它们的长度(这是一个安全的假设,一个更长的字符串会更大,但是比较相似的长度会更难)
int compare_string(char *s1, char *s2)
{
while(*s1==*s2)
{
if ( *s1 == '\0' || *s2 == '\0' )
break;
s1++;
s2++;
}
if( *s1 == '\0' && *s2 == '\0' )
return 0;
else
return -1;
}
严格地说,说函数返回三个可能的值并不完全正确。如果字符串不同,函数将返回负值或正值,但对返回的负值或正值没有限制。换句话说,不能保证只返回
-1
、0
或1
您的意思是类似于strcmp?您所说的“比较它们的值”是什么意思?您想将字符相加并比较总数吗?为什么较长的字符串必须是“较大的”?您所说的“S1大于、等于或小于S2”是什么意思?如果它们的长度相同,您希望评估的标准是什么?@JoC他们通过调用strcmp()
。您仍然懒得阅读该手册页,对吗?