gpt4 book ai didi

c++ - 从 char 数组中删除条目

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:46:12 24 4
gpt4 key购买 nike

我正在创建一个程序,用于收集最多 10 个字符的字符数组。然后它要求用户输入一个字符。如果找到该字符,它将删除该字符数组中的所有条目,并将数组中剩余的字符向前移动以删除所有间隙。

这是我目前的代码:

for (int n = 0; n == 10; n++)
{
int index(0);
**while (text[index] != EOT)
{
if (text[index] == letter)
{
while (text[index] != EOT)
{
text[index] = text[index + 1];
index++;
}
}
else
index++;
}**
}

粗体代码(或中间带有 ** * 的代码目前正在运行,并删除了用户输入的字符的第一个实例。所以我决定在整个 while 循环周围放置一个 for 循环,使其重复代码 10 次。因此,由于输入限制为 10 个字符,它会(或应该)起作用吗?

但是它不再做任何事情了。它甚至不会删除角色的第一个实例,这真的让我感到困惑。谁能看出我哪里出错了?

它是 c++,顺便说一句,我正在使用 Visual Studios 2013。

谢谢!

最佳答案

循环的这条控制语句

for (int n = 0; n == 10; n++)

表示循环永远不会执行。您将零分配给 n,然后说:“当 n 等于 10 时执行循环”。但是 n 正在回答:“我不等于 10”。:)

您可以使用标准算法 std::remove 更简单地执行任务

例如

#include <algorithm>
#include <cstring>
//...

*std::remove( text, text + std::strlen( text ), letter ) = '\0';

关于c++ - 从 char 数组中删除条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22133594/

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