C語言如何判斷字符串相等?
在C語言中,判斷兩個字符串是否相等是一個非常常見的操作。字符串是由若干個字符組成的一種數(shù)據(jù)類型,通常使用字符數(shù)組來表示。在比較字符串時,不能直接使用“==”運(yùn)算符,因為“==”只能用來比較兩個變量的值是否相等,而字符串是一個數(shù)組,不能直接進(jìn)行比較。
p()函數(shù)和自定義函數(shù)來實現(xiàn)。
p()函數(shù)
p()函數(shù)是C語言中字符串比較函數(shù),用于比較兩個字符串是否相等。它的原型如下
tpstst char s2);
其中,s1和s2是要比較的兩個字符串,返回值為0表示兩個字符串相等,返回值大于0表示s1大于s2,返回值小于0表示s1小于s2。
下面是一個示例程序
clude
tain()
char str1[] = "hello";
char str2[] = "world";
char str3[] = "hello";
p(str1, str2) == 0)
{tf");
}
p(str1, str3) == 0)
{tf");
}
輸出結(jié)果為
str1和str2不相等
str1和str3相等
方法二自定義函數(shù)
p()函數(shù),我們還可以自定義一個函數(shù)來判斷兩個字符串是否相等。自定義函數(shù)的實現(xiàn)原理是遍歷兩個字符串的每個字符,逐一比較它們的SCII碼值是否相等。如果所有字符的SCII碼值都相等,就說明兩個字符串相等。
下面是一個示例程序
clude
t strEqual(char s1, char s2)
while (s1 != '\0' && s2 != '\0')
{
if (s1 != s2)
{ 0;
}
s1++;
s2++;
}
if (s1 == '\0' && s2 == '\0')
{ 1;
}
else
{ 0;
}
tain()
char str1[] = "hello";
char str2[] = "world";
char str3[] = "hello";
if (strEqual(str1, str2) == 1)
{tf");
}
if (strEqual(str1, str3) == 1)
{tf");
}
輸出結(jié)果為
str1和str2不相等
str1和str3相等
pp()函數(shù)比較簡單,但是需要注意函數(shù)返回值的含義。自定義函數(shù)需要遍歷兩個字符串的每個字符,比較它們的SCII碼值,實現(xiàn)起來比較繁瑣,但是可以靈活地處理不同情況。無論使用哪種方法,都需要注意字符串的結(jié)束符“\0”,否則會導(dǎo)致比較結(jié)果錯誤。