gpt4 book ai didi

c - 以相反的顺序打印字符串中的单词 C

转载 作者:行者123 更新时间:2023-12-01 13:46:42 24 4
gpt4 key购买 nike

我使用 fgets() 获取用户输入并将其存储到一个临时数组中。然后我将它连接到一个名为 userInput 的主数组,以便用户可以输入多行。

假设用户输入以下内容:

This is a sentence
This is a new line

我需要它按照输入的顺序打印每一行,但颠倒单词的顺序,如下所示:

sentence a is This
line new a is This

我有当前的方法,但我明白了:

line
new a is sentence
This a is This

下面是我的代码,我用一个字符串调用 reversePrint() 来反转:

void printToSpace(const char *str) {
do {
putc(*str, stdout);
} while(*str++ != ' ');
}

void reversePrint(const char *str) {
const char *p = strchr(str, ' ');
if (p == NULL) {
printf("%s", str);
}
else {
reversePrint(p + 1);
printToSpace(str);
}
}

最佳答案

另一种方法:

#include <stdio.h>
#include <string.h>

void reversePrint(const char *str)
{
if (str)
{
reversePrint(strtok (NULL, " \t\n\r"));
printf("%s ", str);
}
}

int main(void)
{
char string[] = "This is a sentence";
reversePrint(strtok(string, " \t\n\r"));
return 0;
}

看起来如此简单明了,我怀疑 strtok() 是否就是为这样的需求而生的。

关于c - 以相反的顺序打印字符串中的单词 C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35497332/

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