17_uhz
2018-10-26 15:19
采纳率: 100%
浏览 440
已采纳

编程小白想实现大小写转换,这段代码有什么错误啊,找不到

#include
void main()
{
char a[40];
int i;
i=0;
scanf("%s",a);
while(a[i] !=0)
{
if(a[i]>='a' && a[i]<='z')
{
a[i]-=32;
i++;
continue;
}
if(a[i]>='A' && a[i]<='Z')
{
a[i]+=32;
i++;
continue;
}
i++;
}
for(i=0;a[i]!=0;i++)
{
printf("%s",a);
}
printf("\n");
}

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • Italink 2018-10-26 15:25
    已采纳

    while()条件有问题

     #include<stdio.h>
    #include<conio.h>
    #include<stdlib.h>
    void main(){
        char a[40];
        int i;
        i = 0;
        scanf("%s", a);
        while (a[i] != '0')     //char与int比较是比较ASCII码
        {
            if (a[i] >= 'a' && a[i] <= 'z')
            {
                a[i] -= 32;     //既然每次都有i++,可以考虑整合起来
    
            }
            else if (a[i] >= 'A' && a[i] <= 'Z')
            {
                a[i] += 32;
            }
            i++;
        }
        printf("%s", a);
        printf("\n");
    }
    
    
    
    
    
    
    
    
    
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题