gpt4 book ai didi

c - 逐个字符打印字符串,不带空格

转载 作者:行者123 更新时间:2023-11-30 18:44:21 25 4
gpt4 key购买 nike

在我的作业问题中,我的老师希望我们编写一个程序,该程序将在新行上逐个字符地打印字符串,但会忽略空格并在同一行上打印重复的字符。例如,逐个字符打印“Hello World”将返回

H
e
ll
o
W
o
r
l
d

我已经能够让我的代码逐个字符地打印字符串,但我无法让它在同一行上打印重复项或忽略空格。我看过其他一些类似的问题,看起来这不是一件简单的任务。

#include <stdio.h>

void print_string(const char instring[]);

int main(void)
{
print_string("Hello World");
return 0;
}

void print_string(const char *instring)
{
while(*instring!='\0')
{
printf("%c\n",*instring++);
}
return;
}

这将像这样返回每个字母

H
e
l
l
o

W
o
r
l
d

但不是按照期望的排列。我曾考虑过实现一个 do while 循环来忽略空格,但至于在同一行上打印重复的字母,我很困惑。另外,如果您想知道为什么我使用指针,我们作业的前一部分是使用指针算术打印字符串的长度。不确定在没有指针的情况下重新处理它是否会更容易。

最佳答案

在循环内 while(*instring!='\0') 您必须有另一个循环来检查当前字符后面的字符。如果该字符是空格,则还必须跳过该字符。例如:

    while(*instring!='\0') {
if (isspace(*instring)) {
instring++;
} else {
printf("%c",*instring);
int i= 1;
while (*instring == *(instring+i)) {
printf("%c",*(instring+i));
i++;
}
printf("\n");
instring += i;
}
}

关于c - 逐个字符打印字符串,不带空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58400019/

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