//这样做为什么不对,为什么没有输出??
//想问一下字符串数组怎么输入输出
#include
int main()
{
char str[10][10]={'\0'};
int flag1=0,flag2=0,flag3=0;
for(int i=0;i<10;i++)
{
gets(str[i]);
}
for(int i=0;i<10;i++)
{
if(str[i]=="zhang"||str[i]=="ZHANG")
flag1++;
else if(str[i]=="li"||str[i]=="LI")
flag2++;
else if(str[i]=="wang"||str[i]=="WANG")
flag3++;
}
printf("zhang\t%d\n",flag1);
printf("li\t%d\n",flag2);
printf("wang\t%d\n",flag3);
}
c语言字符串对比,不能用==对比,应该用专门的函数strcmp、stricmp(头文件#include <string.h>),后者不区分大小写,返回值为0则相等。
判断字符串相等不能用等于号哦,要使用strcmp函数
#include<stdio.h>
#include<string.h>
int main()
{
char str[10][10]={'\0'};
int flag1=0,flag2=0,flag3=0;
for(int i=0;i<2;i++)
{
gets(str[i]);
}
for(int i=0;i<2;i++)
{
//printf("%s\n",str[i]);
if(strcmp(str[i],"zhang") == 0 || strcmp(str[i],"ZHANG") == 0)
flag1++;
else if(strcmp(str[i],"li") == 0 || strcmp(str[i],"LI") == 0)
flag2++;
else if(strcmp(str[i],"wang") == 0 || strcmp(str[i],"WANG") == 0)
flag3++;
}
printf("zhang\t%d\n",flag1);
printf("li\t%d\n",flag2);
printf("wang\t%d\n",flag3);
}