注册 登录
编程论坛 C++教室

输入了一系列字符,如何计数其中的空格出现的次数呢?

ClarenceC 发布于 2014-01-15 15:55, 816 次点击
输入了一系列字符,如何计数其中的空格出现的次数呢?
11 回复
#2
yuccn2014-01-15 16:53
if (string[i] == ' ')
  count++;
#3
ClarenceC2014-01-15 19:37
那如果用switch语句呢?
这样如何:
#include <iostream>
#include <string>
using namespace std;
int main()
{
    char ch;
    int cnt=0;
    while(cin>>ch){
        switch(ch){
        case' '://一个空格
            ++cnt;
            break;
        }
    }
    cout<<cnt<<endl;
    return 0;
}
结果是无法计数空格的?
#4
ClarenceC2014-01-15 19:37
那如果用switch语句呢?
这样如何:
#include <iostream>
#include <string>
using namespace std;
int main()
{
    char ch;
    int cnt=0;
    while(cin>>ch){
        switch(ch){
        case' '://一个空格
            ++cnt;
            break;
        }
    }
    cout<<cnt<<endl;
    return 0;
}
结果是无法计数空格的?
#5
ClarenceC2014-01-15 19:38
回复 2楼 yuccn
如果用switch语句呢。
#include <iostream>
#include <string>
using namespace std;
int main()
{
    char ch;
    int cnt=0;
    while(cin>>ch){
        switch(ch){
        case' '://一个空格
            ++cnt;
            break;
        }
    }
    cout<<cnt<<endl;
    return 0;
}
结果是无法计数空格的?
#6
i802862014-01-15 19:45
cin不接受空格键
#7
ClarenceC2014-01-15 19:49
回复 6楼 i80286
那我想要计数空格怎么办呢?
#8
rjsp2014-01-15 21:41
你这人是不是结巴?每帖都有重复几次。
cin>>noskipws
#9
fl89622014-01-16 09:48
回复 楼主 ClarenceC
用cin>>noskipws>>ch, ch=cin.get()都可以接受空格。
while(cin>>ch){                 
           switch(ch){
               case' '://一个空格
                     ++cnt;
                     break;
                       }
                 }
另外你有没有想过你这样写,如何结束这个循环呢?这样只能让机器一直等待你输入。
#10
i802862014-01-16 11:29
回复 7楼 ClarenceC
getline(cin,string),然后用循环逐一比较," "==string[i]
#11
ClarenceC2014-01-16 11:55
谢谢各位。
#12
ClarenceC2014-01-16 17:49
回复 9楼 fl8962
可以用"ctrl+z "告诉机器结束输入的。
1