错误:表达式必须是可使用字符串修改的左值

Error: Expression must be a modifiable lvalue using strings

本文关键字:修改 字符串 可使用 表达式 错误      更新时间:2023-10-16

我正在尝试创建一个函数,用于统计字符串中使用特定字符的次数。给我错误的部分是:

s[i] = tolower(s[i]);

代码:

#include <iostream>
#include <string>
using namespace std;
unsigned howMany(char c, const string & s);
string changeCase(const string & s);
int main() {
    char z;
    string name;
    cout << "Enter char and string: ";
    cin >> z;
    getline(cin, name, 'n');
    cout << howMany(z, name) << endl;
    cout << changeCase(name) << endl;
}
unsigned howMany(char c, const string & s) {
    unsigned count = 0;
    for (unsigned i = 0; i < s.size(); i++)
    {
        if (c == s[i]) { count++; }
            if (isupper(s[i])){ s[i] = tolower(s[i]);
            count++; 
        }
    }
    return count;
}

您将s声明为const。您无法更改它。