c语言:从键盘输入一个字符串,将其中的的小写字母改为大写字母,并输出修改后的字符串

如题所述

#include <stdio.h>

int main() {
int i = 0;
char s[100];
fgets(s,100,stdin);
while(s[i]) {
if(s[i] >= 'a' && s[i] <= 'z')
s[i] -= 'a' - 'A';
++i;
}
printf("%s\n",s);
return 0;
}

追问

这种没学过

我是初学的,好像是加减32变化的大小写吧

追答

对的。其实这样更好理解,莫名写出一个32会让人迷糊,若写作'a' - 'A'则更明白。

追问

但是我们只教32的

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-05-13
#include <stdio.h>
#include <ctype.h>
int main(void)
{
    char a[100];
    int i = 0;
    for(i=0;i<99;++i)
    {
        a[i]=toupper(int ch);
    }
    a[++i] = '\0';
    puts(a);
}

第2个回答  推荐于2016-06-26
main()
{char a[100],i=0;
scanf("%s",a);
while(a[i])
{if(a[i]>='a'&&a[i]<='z')
a[i]-=32;
i--;
}
printf("%s",a);
}追问

是字符串,不是一字母

追答

你运行它,连续输入一串字符回车就知道了

那个i--应该是i++,我大意了

本回答被提问者采纳
第3个回答  2020-11-26

信息学奥赛 1138-将字符串中的小写字母转换成大写字母

相似回答