如果是整型数组可以str【2】 == 3
网站建设哪家好,找成都创新互联公司!专注于网页设计、网站建设、微信开发、微信小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了嵩县免费建站欢迎大家使用!
但如果是字符型比较的是ASCII值,str[2] == '3' 或者 str[2] == (3的ASCII码)
如果字符型的是整形数字的话就直接比较和你的一样
利用fgets()取得一个字符串,直到读取到"回车"符,而你得到的字符串中含有“回车”(ascii:10),比你要比较的字符串多一个“回车”,所以strcmp()比较结果一直不为零。
如第一次while循环的结果:
从左到右,依次比较字母的ASCII码的大小,遇到不同字符或'\0'结束。
基本形式:strcmp(str1,str2)
str1=str2时,返回零;str1str2时,返回负数;str1str2时,返回正数。
比如Apple和Banana比较,先比较第一个字母A和B,A的ASCII码是65,B的是66,所以AppleBanana。
compare和computer比较,前4个字母相同,第五个字母a和u,a的ASCII码是97,u的是117,所以comparecomputer。
扩展资料:
特别注意:
strcmp(const char *s1,const char * s2)这里面只能比较字符串,即可用于比较两个字符串常量,或比较数组和字符串常量,不能比较数字等其他形式的参数。
ANSI标准规定,返回值为正数,负数,0 。而确切数值是依赖不同的C实现的。
1、当两个字符串不相等时,C标准没有规定返回值会是1 或 -1,只规定了正数和负数。
2、有些会把两个字符的ASCII码之差作为比较结果由函数值返回。但无论如何不能以此条依据作为程序中的流程逻辑。
这个应该挺简单吧 如果是string型 有个比较函数cmp(string a,string b)
如果是char 型 就用个循环 前提是两个数组长度一样
例: char a[n],b[n]
int s=0;
for(int i=0;in;i++)
{
if(a[i]==b[i]) {s++;} //s是对某位上相等的进行计数;
} //s如果与n相等就说明数组相等,反之不是