【发布时间】:2015-12-14 14:46:41
【问题描述】:
我试图通过将字符串提供给函数来减少它。例如,如果我有"abrakadabra",该函数将返回一个字符串"abrkd"。这意味着所有字符在返回值中应该只存在一次。
我有以下功能:
string textletters(string text) {
string ret = "";
for (unsigned i = 0; i < text.length(); i++) {
if (i == 0) {
ret += str;
} else {
bool exist = false;
for (unsigned j = 0; j < i; j++) {
if (text.at(i) == text.at(j) {
exist = true;
}
}
if (!exist) {
ret += str;
}
}
}
return ret;
}
我知道text.at(i) 会返回char。但我想将此char 转换为string,以便将其连接起来。
【问题讨论】:
-
您不必这样做。
std::string的操作符+=可以附加一个char就好了。 -
@Boumbles 不是那个问题的骗子,但可能仍然是一个骗子。
-
访问
text内容的代码处于循环中,通过有效索引运行到text。无需在该循环内检查text.at(i)的有效性。只需使用text[i]。