函数为什么不返回小写字母?

问题描述

我目前对C还是陌生的,所以事情的工作方式对我来说仍然有些陌生,因为我来自Java的OOP背景。我正在尝试从终端获取输入,然后将其转换为所有小写字母,但是该功能似乎无法正常工作。有什么建议吗?

#include <stdio.h>

int lower(int c){
  if (c >= 'A' && c <= 'Z')
    return c + 'a' - 'A';
  else
    return c;
}

int main(){
  int c;
  while ((c = getchar()) != EOF){
    lower(c);
    putchar(c);
  }
}

解决方法

代码应使用lower的返回值:

putchar(lower(c));

您可能还希望使用标准库函数tolower