gpt4 book ai didi

c - 使用函数在 C 中打印字符串

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

我是 C 的新手,正在尝试学习如何获取字符串并使用函数打印它。我到处都看到使用 while(ch = getchar(), ch >= 0) 的示例,但是一旦我将它放入函数(而不是 main()),它就停止工作了。现在,它陷入了无限循环……这是为什么?

// from main():
// printString("hello");

void printString(char *ch)
{
while (*ch = getchar(), *ch >= 0)
putchar(*ch);
}

最佳答案

getchar() 从标准输入读取用户输入。如果您想打印传入的字符串,则不需要 getchar()

让我们一步一步来。您的循环每次从标准输入读取一个字符,直到它到达文件末尾。这就是 ch >= 0 测试检查的内容:只要我们获得有效字符,就继续阅读。对于打印字符串的字符,条件会发生变化。现在有效字符是任何非 NUL ('\0') 的字符。所以我们将循环条件更改为:

while (*ch != '\0')

下一步是找出循环体。 putchar(*ch) 没问题;我们会把它留在那里。但是如果没有 getchar(),我们必须弄清楚“获取下一个字符”的等效语句是什么。

那将是 ch++。这会使 ch 指针指向字符串中的下一个字符。如果我们把它放在循环的末尾,那么我们将打印一个字符,前进一个空格,然后检查下一个字符是否为非 NUL。如果是,那么我们将其打印、推进并检查。

while (*ch != '\0') {
putchar(*ch);
ch++;
}

关于c - 使用函数在 C 中打印字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3794601/

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