我试图更改用户输入的字母大小写,并在变量中存储小写字母和大写字母。我已经编写了下面的代码但它运行有问题。有人指出导致问题的是什么?
#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;
}
答案 0 :(得分:2)
您的代码中存在两个问题:
printf("%s", ...)
用于输出字符串(char*
和const char*
),而不是单个字符。使用printf("%c", ...)
#include <ctype.h>
旁注:您不必检查字符是否为isupper(x)
的大写字母。 tolower(x)
会保留已经小写的字符。