- 论坛徽章:
- 0
|
检验字符串是否相等:
[code]
1 #include <stdio.h>
2 #include <stdbool.h>
3
4 bool equalstring(const char s1[], const char s2[])
5 {
6 bool flag;
7 int i=0;
8 while (s1[i]==s2[i]&&s1[i]!='\0'&&s2[i]!='\0')
9 i++;
10 if (s1[i]==s2[i]=='\0')
11 flag=true;
12 else
13 flag=false;
14 return flag;
15 }
16
17 int main()
18 {
19 bool equalstring(const char s1[], const char s2[]);
20 const char str1[]="test string";
21 const char str2[]="string";
22 printf("%i\n",equalstring(str1, str1));
23 printf("%i\n",equalstring(str1, str2));
24 printf("%i\n",equalstring(str2, "string"));
25 }
[/code]
Env: Linux ; GCC version 4.1.2
运行结果是: 0 1 0
问题: 为什么第三个:str2[]="string"和字符串常量"string"比较后,结果是false的? 不是应该相等的吗? 难道这结果又是根据编译器和环境不同而不同的? |
|