我剛開始學習c
中的字符數組。我只是看c programming by kochan
中提到的示例10.4
。字符串比較操作
// 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;
}
我對字符串平等本身
在上述程序中的一些問題,他們剛開始的字符串比較兩個字符。 是不是表示如果兩個字符串相等,它們應該具有相同的長度?。如果是的話,爲什麼他們在比較人物之前沒有先比較長度?
確實有字符串有其他比較操作嗎?當我谷歌搜索,我有像字符串相似的東西,字符串是否相同。任何關於他們的解釋都會很棒。
我看了那本書,並不推薦作爲學習C的唯一來源。作者根本沒有提及**未定義行爲**的概念,並且使用了一些可疑的概念。 –
你有其他建議嗎? @AnttiHaapala – yash
我有一段時間沒有讀過C書,但自從你提到它的名字後,在書中一窺。 Tome認爲這本書根本沒有提到任何陷阱,而是在描述C. –