2013-10-10 6 views
-2

Скажем, у меня есть две строки, какСравнение общих значений строк?

Input 1: «xyz789»
Input 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; 
} 
+5

Вы имеете в виду что-то вроде 'strcmp'? –

+1

Что вы подразумеваете под «сравнить их ценности»? –

+0

Вы хотите добавить символы и сравнить итоги? Почему более длинная строка обязательно будет «больше»? –

ответ

3

The function you are looking for is named strcmp(). This function is defined to return three possible values, depending on whether the first string is greater than, equal to, or less than the second string. For the sake of completeness, this entire paragraph is a link to the man page for the strcmp() function. Please make sure to read it.

Строго говоря, это не совсем правильно говорить, что функция возвращает три значения. функция возвращает отрицательное или положительное значение, если строки отличаются, но нет никакого ограничения, налагаемые на , чтоотрицательное или положительное значение. Другими словами, не гарантируется возврат только -1, 0, или 1.

Смежные вопросы