gpt4 book ai didi

c - 程序不断打印零字节?

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

我正在尝试创建一个程序来删除句子中的元音。但是,我的程序不断失败,因为它不断在字符串中打印零字节。有人能告诉我哪里出错了吗?

#include <stdio.h>

int remove_all_vowels(int character);

int main(void) {

int character = getchar();
while (character != EOF && character != '\0') {

int new_character = remove_all_vowels(character);
putchar(new_character);

character = getchar();
}


return 0;

}

int remove_all_vowels(int character) {
if (character == 'a' || character == 'e' || character == 'i' || character
== 'o' || character == 'u') {
return 0;
} else {
return character;
}

}

最佳答案

您的问题(输出空字符)来自于您无条件 putchar(3) remove_all_vowels 的结果,当给定字符是元音时,它返回 0(空字符)。

用空格替换元音:

您只需将remove_all_vowels中的return 0;更改为return ' ';

要完全删除元音:

我建议使用一个函数来帮助您检查元音,而不是让它像对 char 进行转换一样,这确实是 pythonest。

代码示例:

int is_vowel(int character) {
return (
character == 'a' || character == 'e' || character == 'i'
|| character == 'o' || character == 'u'
);
}

// Then, in your main...
...
if (!is_vowel(character))
putchar(character);

关于c - 程序不断打印零字节?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58601782/

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