C 比较字符串的总值?

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

假设我有两条线

输入1:“xyz789”
输入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()
。您仍然懒得阅读该手册页,对吗?