//这样做为什么不对,为什么没有输出?? //想问一下字符串数组怎么输入输出

//这样做为什么不对,为什么没有输出??
//想问一下字符串数组怎么输入输出
#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);
}