将C语言中的小写字母转换为大写

时间:2018-09-13 02:48:05

标签: c

我正在研究一个简单的程序,以将其合并到更大的程序中。我正在遵循我教授已经教过的内容。

#include <stdio.h>

int main()
{
char letter;
printf("Please Enter a Lower Case Letter:");
scanf("%s", letter);

if (letter >= 'a' && letter <= 'z')
  letter = letter - 'a' + 'A';
printf("%s", letter);
return 0;
}

出现首字母“请输入小写字母:”,但输入字母后,返回值为(空)。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:1)

也许尝试使用getchar()而不是scanf()。链接到getchar()scanf()

的C参考
#include <stdio.h>
int main()
{
char letter;
printf("Please Enter a Lower Case Letter:");
letter = getchar();

if (letter >= 'a' && letter <= 'z')
  letter = letter - 'a' + 'A';
printf("%c", letter);
return 0;
}

答案 1 :(得分:0)

scanf("%s", letter);将读取一个字符串并将其复制到内存letter指向的位置,从而改为传递letter的指针(scanf("%s", &letter);)。 如果只需要一个字符,也可以使用%c代替%s,否则scanf可以将一些不需要的字节写入相邻的内存。 对于最后printf行也是如此。