改变C中的一封信的情况?

时间:2014-03-14 21:18:17

标签: c case uppercase lowercase

我试图更改用户输入的字母大小写,并在变量中存储小写字母和大写字母。我已经编写了下面的代码但它运行有问题。有人指出导致问题的是什么?

#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;
}

1 个答案:

答案 0 :(得分:2)

您的代码中存在两个问题:

  1. printf("%s", ...)用于输出字符串(char*const char*),而不是单个字符。使用printf("%c", ...)
  2. 您忘了#include <ctype.h>
  3. 旁注:您不必检查字符是否为isupper(x)的大写字母。 tolower(x)会保留已经小写的字符。