#include <stdio.h>
#define TRUE 1
#define FALSE 0
main()
{
/*
练习1-12:编写一个程序,以每行一个单词的形式打印其输入
思考: 用空格,换行符,制表符来区分单词,需要定义一个变量用来确定是否在单词中
设计:
1.定义一个变量c用以获取字符,定义一个变量用来确定是否在单词中,赋值为false
2.采用while循环对输入行进行遍历
*/
// 1.定义一个变量c用以获取字符,定义一个变量用来确定是否在单词中,赋值为false
int c;
int state = FALSE;
int count = 1;
// 2.采用while循环对输入行进行遍历
while((c = getchar()) != EOF)
{
if(c == ' ' || c == '\t' || c == '\n'){
state = FALSE;
}else if(state == FALSE) {
state = TRUE;//需要满足第一个条件方可进入第二个条件
putchar('\n');
}
putchar(c);
}
}
输入:
asjjl asl qjio l
输出:
asjjl
asl
qjio
l
缺点:
如果首字符是:c == ' ' || c == '\t' || c == '\n',那么就增加一行输入
版本二:
#include <stdio.h>
#define TRUE 1
#define FALSE 0
main()
{
/*
练习1-12:编写一个程序,以每行一个单词的形式打印其输入
思考: 用空格,换行符,制表符来区分单词,需要定义一个变量用来确定是否在单词中
设计:
1.定义一个变量c用以获取字符,定义一个变量用来确定是否在单词中,赋值为false
2.采用while循环对输入行进行遍历
*/
// 1.定义一个变量c用以获取字符,定义一个变量用来确定是否在单词中,赋值为false
int c;
int state = FALSE;
int count = 1;
// 2.采用while循环对输入行进行遍历
while((c = getchar()) != EOF)
{
if(c == ' ' || c == '\t' || c == '\n'){
if(state = TRUE)
putchar('\n');
}else if(state == FALSE) {
state = TRUE;
putchar(c);//这是首个字符的输出
}else{
putchar(c);//这是一个单词部分除首个字符的输出
}
}
}