|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include <stdio.h>
- #include <string.h>
- int main()
- {
- char *str1 = "c";
- char *str2 = "FishC.com";
- int t = strcmp(str1, str2);
- printf("%d\n", t);
-
- getchar();
- return 0;
- }
复制代码
字符串1(str1)明显小于字符串2(str2)
不过strcmp函数返回值为1,给出了str1 > str2的结果。
是不是该函数只能用于判断如下字符串的大小:
“asdf” 与 “asdfg”
即两个字符串一定要有相同部分。
按照下面这个例子:
“asdfhgfd” 与 “asdfz”
strcmp函数判断到f后的字符“h”与“z”,同时ASCII码,h < z
便给出了结果 前面的字符小于后面的字符
但是此时前面的字符(“asdfhgfd” ),后面还由字符(gfd)未判断,而此时“asdfhgfd”应该是大于“asdfz”的。
突然就陷入到了这样的思维里面,大家帮帮忙把我拉出来把
你对函数功能有误解吧!
strcmp(str1, str2) 是逐个比较两个字符串中字符的ASCII码的大小。一旦比较出大小就不再看后面的字符。
该函数不是比较两个字符串的长度大小
你若要比较两个字符串的长度大小需要用strlen获取字符串的长度,然后比较大小
- #include <stdio.h>
- #include <string.h>
- int main()
- {
- char *str1 = "c";
- char *str2 = "FishC.com";
- int t = strlen(str1)>strlen(str2)?1:0;
- printf("%d\n", t);
-
- getchar();
- return 0;
- }
复制代码
|
|