int main()
{
char sentence;
int count;
cout << "Enter sentence: ";
cin >> sentence;
count = 0;
while ( sentence == 'b' || 'B' ) {
count++;
}
cout << "Number of b's: " << count * 1 << endl;
return 0;
}
计数也必须在所有标点符号处停止。我似乎无法让它给我正确的计数。
答案 0 :(得分:2)
这是你的while
循环。变量sentence
在循环内部不会更改,因此循环可以永久执行。
您可能希望将std::string
用于句子,将char
用于句子中的字符。
char letter;
cout << "Enter a sentence:\n";
while (cin >> letter)
{
// Check for sentence termination characters.
if ((letter == '\n') || (letter == '\r') || (letter == '.'))
{
break; // terminate the input loop.
}
// Put your letter processing code here.
} // End of while loop.
答案 1 :(得分:0)
您的计划中有几个可疑点:
char sentence;
cin >> sentence;
这看起来只会读一个字符。您可能想要getline()并将用户输入保存在std :: string
中至于
while ( sentence == b || B ) {
由于b和B未定义,因此甚至无法编译。也许它应该是
if ( cur_byte == ‘b' || cur_byte == ‘B’ )
count++
其中cur_byte是在字符串
中正确维护的迭代器答案 2 :(得分:0)
#include <string>
使用字符串。 string sentence;
并创建一个长期:
for(int i=0; i<sentence.length(); i++)
if(sentence[i] == b || B) count ++;
如此简单;)祝你好运;)
编辑1:
如果您只使用while
:
int count = sentence.length();
int count2 = 0;
while(count != 0)
{
if(sentence[count] == b||B) count2++
count--;
}
祝你好运;)
答案 3 :(得分:0)
#include <iostream>
using namespace std;
int main()
{
char c;
int n = 0;
cout << "Enter sentence: ";
while (cin >> c && !ispunct(c)) if (tolower(c) == 'b') n++;
cout << "Number of b's: " << n << endl;
return 0;
}
示例:
输入句子:两个B或不两个b,即问题Bb。
b的数量:2