c语言字符变换问题……

来源:百度知道 编辑:UC知道 时间:2024/05/28 18:54:31
编程输入一个句子(1-80个字符都可能,回车代表结束),将其中的大写字符变成小写(其他类型字符不变),最后输出变换后的句子。
如输入How Are You?则输出how are you?
我自己编了个
#include <stdio.h>
void main()
{
char str[20];
int i=0;
scanf("%s",str);

while(str[i]!='\0')
{
if(str[i]>='A'&&str[i]<='Z')
str[i]=str[i]+32;
i++;
}
printf("%s",str);
}

但无法处理空格和空格后的输入的,有人会解决吗?

#include <stdio.h>
int main(void)
{
char str[84];
int i = 0;
scanf("%[^\n]", str);
while(str[i])
{
if('A' <= str[i] && str[i] <= 'Z')
str[i] += 32;
i++;
}
printf("%s\n", str);
return 0;
}

scanf()接受数据时,以空格,回车等作为结束

所以输入回车后,str接受到的字符只是空格前面的字符了

用函数gets(str)

可解决你的问题

带上头文件,好象是string.h,自己试吧

用gets(s);
这个可以收空格的