我刚开始在c
学习字符数组。我只是看10.4
中提到的示例c programming by kochan
。
// Function to determine if two strings are equal
#include <stdio.h>
#include <stdbool.h>
bool equalStrings (const char s1[], const char s2[])
{
int i=0;
bool areEqual;
while ( s1[i] == s2 [i] && s1[i] != '\0' && s2[i] != '\0' )
++i;
if ( s1[i] == '\0' && s2[i] == '\0' )
areEqual = true;
else
areEqual = false;
return areEqual;
}
int main (void) {
bool equalStrings (const char s1[], const char s2[]);
const char stra[] = "string compare test";
const char strb[] = "string";
printf ("%i\n", equalStrings (stra, strb));
printf ("%i\n", equalStrings (stra, stra));
printf ("%i\n", equalStrings (strb, "string"));
return 0;
}
我对字符串相等本身有几个问题
在上面的程序中,他们刚开始比较字符串中的两个字符。 这不是说如果两个字符串相等,它们的长度应该相同吗?。如果是的话,为什么他们在比较人物之前没先比较长度?
字符串是否有任何其他比较操作?当我用Google搜索时,我得到的字符串相似,字符串相同或不相同。对它们的任何解释都会很棒。