用X C ++练习替换字符串中的字符

时间:2018-08-21 05:41:05

标签: c++ string

我只是在做一些练习,却陷入尝试将字符串s的字符更改为字符x的问题,这是下面的代码:

#include <iostream>
#include <vector>
#include <string>
using namespace std;
using std::vector;
using std::array;

int main()
{
    string s{ "Hello" };
    for (auto &c : s)
        char c{ "x" };
}

但是它抛出了错误:

  

'c':'std :: string'的间接级别与'_Elem&'T

不同

如果有人可以帮助那将是很好的

3 个答案:

答案 0 :(得分:3)

使用算法:

std::fill(begin(s), end(s), ‘X’);

在代码中,您使用字符串文字来初始化char。您也不想定义新的char,而是分配给您已经获得的引用。

答案 1 :(得分:2)

尝试将您的for循环替换为:

for(auto &c : s)
    c = 'x'

答案 2 :(得分:1)

更改c的值将更改s中的字符

#include <iostream>
#include <vector>
#include <string>
using namespace std;
using std::vector;
using std::array;

int main()
{
    string s{ "Hello" };
    for (auto &c : s)
        c = 'x';
    cout << s;
}