mushanyu_ 2022-09-20 18:59 采纳率: 64.3%
浏览 1016
已结题

判断两个由大小写字母和空格组成的字符串在忽略大小写,且忽略空格后是否相等

#判断两个由大小写字母和空格组成的字符串在忽略大小写,且忽略空格后是否相等

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
    char a[1000],a1[1000],b[1000],b1[1000];
    int i,j=0;
    gets(a);
    gets(b);
    int n1=strlen(a),n2=strlen(b);
    for (i=0;i<n1;i++)
    {
        if (a[i]>='A'&&a[i]<='Z')
            a1[j++]=a[i]+32;
        else if (a[i]>='a'&&a[i]<='z')
            a1[j++]=a[i];
    }
    a1[j]='\0';
    j=0;
    for (i=0;i<n2;i++)
    {
        if (b[i]>='A'&&b[i]<='Z')
            b1[j++]=b[i]+32;
        else if (a[i]>='a'&&a[i]<='z')
            b1[j++]=b[i];
    }
    b1[j]='\0';
    int res;
    res=strcmp(a1,b1);
    if (res==0)
        printf("YES");
    else
        printf("NO");

    return 0;
}



输入A,a后输出的是NO
我的思路是假如数组中内容是字母则赋值到新数组,并进行大小写转换
有劳指点一下哪里错了

  • 写回答

1条回答 默认 最新

  • a5156520 2022-09-20 19:13
    关注

    第24行的a[i]改为b[i]即可。修改如下:

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    int main()
    {
        char a[1000],a1[1000],b[1000],b1[1000];
        int i,j=0;
        gets(a);
        gets(b);
        int n1=strlen(a),n2=strlen(b);
        for (i=0;i<n1;i++)
        {
            if (a[i]>='A'&&a[i]<='Z')
                a1[j++]=a[i]+32;
            else if (a[i]>='a'&&a[i]<='z')
                a1[j++]=a[i];
      
        }
        a1[j]='\0';
        printf("a1=%s\n",a1); 
        j=0;
        for (i=0;i<n2;i++)
        {
            if (b[i]>='A'&&b[i]<='Z')
                b1[j++]=b[i]+32;
            else if (b[i]>='a'&&b[i]<='z')
                b1[j++]=b[i];
    
        b1[j]='\0';
        printf("b1=%s\n",b1); 
        int res;
        res=strcmp(a1,b1);
        if (res==0)
            printf("YES");
        else
            printf("NO");
     
        return 0;
    }
     
     
     
    
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 9月20日
  • 已采纳回答 9月20日
  • 创建了问题 9月20日

悬赏问题

  • ¥20 需要帮我远程操控一下,运行一下我的那个代码,我觉得我无能为力了
  • ¥20 有偿:在ubuntu上安装arduino以及其常用库文件。
  • ¥15 请问用arcgis处理一些数据和图形,通常里面有一个根据点划泰森多边形的命令,直接划的弊端是只能执行一个完整的边界,但是我们有时候会用到需要在有很多边界内利用点来执行划泰森多边形的命令
  • ¥30 在wave2foam中执行setWaveField时遇到了如下的浮点异常问题,请问该如何解决呢?
  • ¥750 关于一道数论方面的问题,求解答!(关键词-数学方法)
  • ¥200 csgo2的viewmatrix值是否还有别的获取方式
  • ¥15 Stable Diffusion,用Ebsynth utility在视频选帧图重绘,第一步报错,蒙版和帧图没法生成,怎么处理啊
  • ¥15 请把下列每一行代码完整地读懂并注释出来
  • ¥15 寻找公式识别开发,自动识别整页文档、图像公式的软件
  • ¥15 为什么eclipse不能再下载了?