C语言问题,关于车牌号系统识别。

img

img


这该怎么解决呢,我输出的一直是Noname?我应该怎么做呢。一直困扰着我。


#include<stdio.h>
#include<string.h>
int main()
{
    char s[20];
    scanf("%s",s);
    if(strcmp(s,"--A11111")==0)
    {
         printf("合肥");
    }
    else if(strcmp(s,"--B12345")==0)
    {
        printf("芜湖");
    }
    else if(strcmp(s,"--C99999")==0)
    {
        printf("蚌埠");
    }
    else if(strcmp(s,"--G99999")==0)
    {
         printf("铜陵");
    }
    else
    {
        printf("Noname");
    }
    return 0;
}

因为你识别车牌所属地区的方法不对,不是比较字符串(比较字符串的方法也不对,可以用strcmp()函数),而是识别车牌号字符串第三个字符是A-S里的哪一个,然后打印对应的所属市(下面的方法是打印所属市的汉字,如果要打印拼音,把所属市的汉字改为拼音即可),修改如下:

参考链接:
安徽(中华人民共和国省级行政区)_百度百科


#include  <stdio.h>

int main(void){
    
     char s[20];
     scanf("%s",s);
     if(s[2]=='A') printf("合肥市"); 
     else if(s[2]=='B') printf("芜湖市"); 
     else if(s[2]=='C') printf("蚌埠市"); 
     else if(s[2]=='D') printf("淮南市"); 
     else if(s[2]=='E') printf("马鞍山市"); 
     else if(s[2]=='F') printf("淮北市"); 
     else if(s[2]=='G') printf("铜陵市"); 
     else if(s[2]=='H') printf("安庆市"); 
     else if(s[2]=='I') printf("黄山市"); 
     else if(s[2]=='K') printf("阜阳市"); 
     else if(s[2]=='L') printf("宿州市"); 
     else if(s[2]=='M') printf("滁州市"); 
     else if(s[2]=='N') printf("六安市"); 
     else if(s[2]=='P') printf("宣城市"); 
     else if(s[2]=='R') printf("池州市"); 
     else if(s[2]=='S') printf("亳州市"); 
     
     else printf("Noname");
     
     return 0;
} 

img

s要定义成数组,字符串是双引号,比较字符串不能用==


    char s[10] = {0};
    scanf("%s", s);
    if(strcmp(s, "--A11111") == 0) printf("合肥");