gpt4 book ai didi

c++ - 基本 C++ : convert from char to string

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

我对类代码有点困惑。这是我正在尝试做的事情:

//Program takes "string text" and compares it to "string remove".  Any letters in
//common between the two get deleted and the remaining string gets returned.
#include <string>
#include "genlib.h"

string CensorString1(string text, string remove);

int main() {
CensorString1("abcdef", "abc");
return 0;
}

string CensorString1(string text, string remove) {
for (int i = 0; text[i]; i++){
for (int n = 0; remove[n]; n++){
if (i != n){
string outputString = ' '; //to store non repeated chars in,
//forming my return string
outputString += i;
}
}
}
return outputString;
}
  1. 我收到有关“outputString += 1”的错误消息:“无法从“char”转换为std::basic_string
  2. 我在“return outputString”上也收到一条错误消息:未声明的标识符????????

我知道我正在将一个“char”放在一个“string”变量上,但是如果很快那个“char”将很快成为一个字符串怎么办?有没有办法通过这个?

我总是忘记图书馆。有人可以推荐几个我应该经常考虑的标准/基本库吗?现在我在想,“genlib.h”(来自类)。

C++ 让我大吃一惊。我无法避免不断出现的小错误。告诉我它会变得更好。

最佳答案

你的代码有很多错误:

  • 您的 outputString 需要在外部范围内(语法)
  • 您将 in 进行比较,而不是将 text[i]remove[n] 进行比较(语义)
  • 您正在将 i 添加到输出而不是 text[i](语义)
  • 您忽略 CensorString1 的返回(语义)

这是你修改后的代码:

string CensorString1(string text, string remove) {
string outputString;
for (int i = 0; text[i] ; i++){
for (int n = 0; remove[n] ; n++){
if (text[i] != remove[n]){
outputString += text[i];
}
}
}
return outputString;
}

这还有一些遗留问题。例如,使用 text[i]remove[n] 作为终止条件。它的效率也很低,但它应该是一个不错的开始。

关于c++ - 基本 C++ : convert from char to string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8777800/

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