任务是“用C编写一个程序,该程序将输入中的单词放在换行中而不使用字符串”。我试图通过这样做来解决它,但是我没有得到任何回应(即使只有一个字母也没有)。我也曾尝试过寻求其他任务的帮助,但他们通常使用字符串来解决。由于我是C语言的新手,所以我的初学者课程仍然仅适用于char而不适用于string。感谢您的提前帮助。
#include <stdio.h>
int main() {
int c;
int state;
state=1;
while((c=getchar())!=EOF) {
if(c=' ')
state=0;
else
if (state=0) {
putchar('\n');
state=1; }
else putchar(c);
}
}
答案 0 :(得分:0)
您的代码中有几个问题
if(c=' ')
,其中=必须为== if (state=0)
,其中=必须为== 函数 isspace 是您的朋友,可以知道字符是否具有空格的作用。
纠正所有问题的建议可以是:
#include <stdio.h>
#include <ctype.h>
int main() {
int c;
int inWord = 0;
while((c=getchar())!=EOF) {
if (!isspace(c)) {
putchar(c);
inWord = 1;
}
else if (inWord) {
putchar('\n');
inWord = 0;
}
}
if (inWord)
putchar('\n');
}
编译和执行:
pi@raspberrypi:/tmp $ gcc -pedantic -Wextra -g s.c
pi@raspberrypi:/tmp $ cat f
just a
test of
validity
pi@raspberrypi:/tmp $ ./a.out < f
just
a
test
of
validity
pi@raspberrypi:/tmp $