strcmp是字符串比较函数,调用形式为strcmp(字符串1,字符串2);
站在用户的角度思考问题,与客户深入沟通,找到仙居网站设计与仙居网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站设计、成都网站设计、企业官网、英文网站、手机端网站、网站推广、域名注册、网页空间、企业邮箱。业务覆盖仙居地区。
功能:字符串1与字符串2比较,如果字符串1==字符串2,则函数值为0,1大于2,则为正整数,1小于2,则为负整数;
从两个字符串的第一个字符开始逐个进行比较(按照ascii码
的大小进行比较),之道出现不同的字符或遇到“\0”为止。例如:char*str1=hello,*str2=void;则strcmp(str1,str2)0;因为‘h’'v';
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));
strcmp简介:
函数原型int strcmp(const char *str1,const char *str2);
其作用为:
将str1的各个字母的ASCII码与str2的进行比较。
若str1str2则返回整数,若str1=str2返回0,否则,返回负数。
一般这样调用:
if(strcmp(str1,str2)==0)
当然,这是C语言的库函数,它的代码存储在某个库文件中。
在string.h里只是一个声明。
我给你写一下,大概是这样的:
int strcmp(const char *str1,const char *str2)。