这是我的代码,用于计算字符串中字符重复的次数:
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 似乎看到了其他东西,这就是我得到的:
谁能看出问题出在哪里吗?
sizeof
技巧仅适用于固定大小的数组,不适用于std::string
对象。请改用字符串的 size()
(或 length()
)方法:
size_t size = a.size(); // or .length()