gpt4 book ai didi

C、每个单词都换行

转载 作者:太空宇宙 更新时间:2023-11-04 04:13:17 25 4
gpt4 key购买 nike

任务是“用 C 语言编写一个程序,将输入中的单词放入新行而不使用字符串”。我试图通过这样做来解决它,但我从来没有得到任何回应(甚至没有一封信)。我也尝试过在其他任务上寻求帮助,但他们通常用字符串解决它。因为我是 C 新手,所以我的初学者类(class)仍然只适用于 char 而不是字符串。提前感谢您的帮助。

#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);
}
}

最佳答案

你的代码有几个问题

  • if(c=' ') 其中 = 必须是 ==
  • if (state=0) 其中 = 必须是 ==
  • 空格后的字符丢失并替换为\n
  • \n 等字符不被视为空格

isspace 函数是您了解角色是否具有空格角色的 friend 。

解决所有问题的建议可以是:

#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 $

关于C、每个单词都换行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54873950/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com