c编程输入一个英语句子,让每个单词单独一行输出。

题目要求输入一个句子,然后让每个单词占一行这样输出。我想到的是把\0替换成\n,但是句子是要求人来输入的,不知道有多少个空格。请哪位高手来帮我写下。本人刚学两个月,刚到字符数组这里

第1个回答  2013-12-17
灰常简单的。不需要知道空格个数,直接在循环输出字符判断当前字符是否为空格,若是空格就执行换行;一直循环下去,如果遇到结束符\0,就停止输出字符。空格字符写作’ ‘(单引号中间空格)或者 ’\32‘(ASCII码32)
思路:1.先定义一个足够大的空字符数组,用来存储输入的字符串。
2.输出数据字符,当字符是空格' '
3.一直循环输出,遇结束符终止输出。
-------RC BY:zhanfeng--------------------------------------------------------------

#include <stdio.h>
int main()
{
int n=0;
char str[1000]=""; //定义一个足够大的空字符数组,用来存储输入
puts("请输入一句话:"); gets(str);
while(str[n]!='\0') //判断是否为语句的输出结尾,非空结束
{
printf("%c",str[n]);
if(str[n]==' ') putchar('\n'); //判断是否空格,空格就换行
n++;
}
return 0;
}

-----------------------------------------------------------------------------------------
第2个回答  2013-12-17
int main()
{
int cnt = 0;
char ch[10000];
gets(ch);
printf("\n\n");
while(ch[cnt] != '\0' && ch[cnt] != '.')
{
if(ch[cnt] != ' ')
{
printf("%c",ch[cnt]);
}
else
{
printf("\n");
}
cnt++;
}
getch();
return 0;
}本回答被网友采纳
相似回答