【发布时间】:2015-07-08 07:04:17
【问题描述】:
这是我的代码
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
char chaCap(char n);
int main()
{
char ch,a;
printf("Enter Sentence\n");
while((ch=getchar()) != '\n')
{
chaCap(ch);
printf("%c",a);
}
printf(" \n");
return 0;
}
void chaCap(char n)
{
if(n >= 'a' && n <='z')
n-=32;
}
我需要
- 要求用户输入句子
- 将句子全部转换为大写字母并打印
- 将句子全部转换为小写字母并打印
- 将每个字符从大到小转换,反之亦然。
我做了改变大写字母,但我不能降低,反之亦然。
当我为 2. 和 3 编写代码时,getchar() 什么都不是……
【问题讨论】:
-
ch = toupper(ch); printf("%c", ch); -
提示:类似于您通过减去 32 使大写变小的方式,您还应该在字母为大写时添加一些内容以使其更小。
-
我建议获取字符的 ascii 值,然后添加逻辑:- 如果 ascii 值在 65-97 之间,则 +32 否则如果 97-122 则 -32。就是这样。尝试这样做...
-
你的程序没有给你任何错误。
标签: c