gpt4 book ai didi

c++ - 我正在尝试使用 while 循环从字符串中删除字母,直到没有剩余为止。我在这里做错了什么?

转载 作者:行者123 更新时间:2023-12-01 14:07:36 24 4
gpt4 key购买 nike

#include<iostream>
#include<string>
using namespace std;

int main() {
string word;
cout << "please enter a word: ";
getline(cin, word);
int str_size;
word.size() = str_size;
// the line above says "word must be modifiable". new to coding so not sure how to fix it?
// also haven't tested anything below this point yet.
while (str_size) {
word.resize(str_size - 1, '\0');
}

string end;
getline(cin, end);
return 0;
}

任何人都可以解释我在这里做错了什么。我是不是用错了方法?

最佳答案

在这一行:

word.size() = str_size;

您正在尝试为 .size() 返回的临时值赋值。但是,operator= 需要在左侧有一个左值(即具有名称的变量)。

所以你需要的是:

str_size = word.size();

要真正从字符串中删除字母,您可以使用一些算法,例如 std::remove_if这可以让您完全避免编写任何循环。

关于c++ - 我正在尝试使用 while 循环从字符串中删除字母,直到没有剩余为止。我在这里做错了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62399549/

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