gpt4 book ai didi

c - 在 C 中使用 getchar 进行迭代(过滤掉特定字母)

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

我是 C 新手,我编写了以下代码:

for(i=0; i<25; ++i) {
ch=getchar();
if (ch == 'A' || ch == 'B'|| ch == 'C'|| ch == 'D'|| ch == 'a'|| ch == 'b'|| ch == 'c'|| ch == 'd'){
putchar(toupper(ch));
}
}

我希望我的代码能够过滤掉字母“a、b、c 和 d”,并将它们显示为输出当且仅当存在可以与 B 配对的 A(对于 B 相同)和可以配对的 C与D配对。(大写输出)

我为此使用了 for 循环,以便每次进入循环时都会获取字母。

我不希望我的代码包含数组。

示例输入和预期输出:

输入:ATASHPPOTCBD
输出:ACBD

它写入第一个 A,因为它能够与 B 配对,但不能与第二个 A 配对。它还写入 C 和 D,因为它们能够配对。

最佳答案

一些简单的伪代码显示了可能的算法:

read_all_input_into_a_string();

current_A = 0;

for(each character in the string)
{
if (character == 'A')
{
++current_A;
current_B = 0;
for (each character2 in the string)
{
if (character2 == 'B')
{
++current_B;
if (current_A == current_B)
{
// Found matching A and B
}
}
}
}
}

如果在搜索匹配的 'B' 时不应从字符串的开头重新开始,则只需从找到 'A' 的位置开始即可.

关于c - 在 C 中使用 getchar 进行迭代(过滤掉特定字母),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42736718/

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