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);
}
但无法处理空格和空格后的输入的,有人会解决吗?
如输入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);
这个可以收空格的