发布网友 发布时间:2022-04-21 20:03
共4个回答
热心网友 时间:2022-04-08 19:18
c风格字符串是以'\0'为结束标志的。如果你的name[10]没有初始化,用scanf得到前3个字符为abc,后面的是随机的,当你使用strcmp(name,
"abc")的时候,有可能你的name低第四个字符正好是'\0',那么此时就是两个相同,否则就是不同。
举个例子
如果你的name的分布是"abc\0defghi";此时你使用strlen获取他的长度将会是3,这就是c风格字符串以'\0'结束,后面的就不考虑了,使用strcmp也是同样的道理。
解决的办法是你在name定义的时候初始化
两种方法
1、char
name[10]
=
{0};
2、char
name[10];
memset(name,
0,
sizeof(name));
热心网友 时间:2022-04-08 20:36
函数原型:extern
int
strcmp(const
char
*s1,const
char
*s2);
函数功能:以ascii码值比较两个字符串的大小,当s1
s2时,返回正数。
头文件:#include
参数说明:两个比较字符串的首地址指针。
注意事项:strcmp(const
char
*s1,const
char
*
s2)这里面只能比较字符串,即可用于比较两个字符串常量,或比较数组和字符串常量,不能比较数字等其他形式的参数。
热心网友 时间:2022-04-08 22:11
字符串比较函数,两个字符串,从第一个字符开始比,如果相同,继续向下比,如果不同,看这两个字符的ASCII码,如果第一个字符串的比较大,则返回1,否则返回-1;
热心网友 时间:2022-04-09 00:02
请参考:
http://ke.baidu.com/view/1026924.htm
这个就是strcmp函数的用法
他比较的是字符串中字符的ASCII码值,所以可以比较大小。