字符串中某个字符重复了多少次? [字符串下标超出范围错误]

问题描述 投票:0回答:1

这是我的代码,用于计算字符串中字符重复的次数:

int count_char(string a, char b)
{
    int size = sizeof(a) / sizeof(a[0]);
    int counter = 0;
    for (int i = 0; i < size; i++)
    {
        if (a[i] == b)
        {
            counter++;
        }
    }
    cout << a << "has " << counter << b << "s\n";
    return counter;
}
int main()
{
    count_char("Hello", 'l');
}

对我来说,一切看起来都不错,但 Microsoft Visual Studio 似乎看到了其他东西,这就是我得到的: enter image description here

谁能看出问题出在哪里吗?

c++ string for-loop char
1个回答
3
投票

sizeof
技巧仅适用于固定大小的数组,不适用于
std::string
对象。请改用字符串的
size()
(或
length()
)方法:

size_t size = a.size(); // or .length()
© www.soinside.com 2019 - 2024. All rights reserved.