【发布时间】:2014-03-14 21:18:17
【问题描述】:
我正在尝试更改用户输入的字母的大小写,并将字母的小写和大写版本存储在变量中。我已经编写了下面的代码,但运行时出现问题。有人指出导致问题的原因吗?
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>
char CaseChange(character){
int lowerc, higherc;
if(isupper(character)){
lowerc = tolower(character);
printf("%s", lowerc);
}
else{
higherc = character;
printf("%s", higherc);
}
return;
}
int main(void){
char character;
printf("Enter a character: ");
scanf("%c", character);
CaseChange(character);
return 0;
}
【问题讨论】:
-
您遇到的错误是什么?
-
在 ASCII 中,您可以通过与 0x20 异或来更改字母的大小写。
-
您遇到的具体问题是什么?它不编译(因为它不应该),它是否给出了段错误或奇怪的输出(因为它应该)?
-
对不起,它编译得很好,但是当我运行它时,它在我输入字符后停止工作?就像运行时错误
-
你应该使用更好的编译器。当
printf参数的类型与相应的格式说明符不匹配时,智能编译器会发出警告。
标签: c case uppercase lowercase