问题标题: 酷町堂:2711 多少个空格

1
0
已解决
王俊杰
王俊杰
高级光能
高级光能

2711   多少个空格经验值:0

题目描述 Description

输入一行字符串,请你找到这个字符串中有多少个空格。

输入描述 Input Description

一行:输入字符串

输出描述 Output Description

一个数字:字符串中的空格数

样例输入 Sample Input

Hello miao miao

样例输出 Sample Output

2

错误代码:

#include<iostream>
#include<cstdio>
#include<string>
using namespace std;
int sum;
int main()
{
    string a,b;
    getline(cin,a);
    if(b==" "){
        sum++;
    }
    cout<<sum;
    return 0;
} //2711

为啥输出:0

请大佬解答  谢谢!!


0
已采纳
李瑞曦
李瑞曦
高级天翼
高级天翼

a.size()是a这个字符串的长度,而-1代表循环到第a-1个字符,因为下标是从0开始的

1
王俊杰
王俊杰
高级光能
高级光能

for(int i=1;i<=a.size()-1;i++)中的

a.size()-1 是什么意思

 

0
胡景波
胡景波
中级光能
中级光能

遍历字符串:

for(int i=1;i<=a.size()-1;i++)

{

    if(a[i]==' ')

    {

        sum++;

    }

}

0
王俊杰
王俊杰
高级光能
高级光能

找一下这代码哪错了??急

#include<iostream>
#include<cstdio>
#include<string>
using namespace std;
int sum;
int main()
{
    string a,b;
    getline(cin,a);
    if(b==" "){
        sum++;
    }
    cout<<sum;
    return 0;
} //2711

0
王泽宇
王泽宇
初级光能
初级光能

核心

string a;

 

int cnt=0;//定义计数器cnt和字符数组a

 

geline(cin,a);//输入

 

for(int i=0;i<a.size();i++)//循环

 

{

 

if(a[i]==' ')//如果是空格

 

{

 

cnt++; //计数器++

 

}

 

}

 

王泽宇在2020-06-16 18:31:28追加了内容

b你没有输入

0
胡景波
胡景波
中级光能
中级光能

用遍历字符串;

普通的if不行。

附:

将10至12行改成:

for(int i=1;i<=a.size()-1;i++)

{

    if(a[i]==' ')

    {

        sum++;

    }

}

 

0
0
王子逸
王子逸
新手天翼
新手天翼

你都不循环怎么判断啊?

加一个for(int i=0;i<a.size();i++)

加一个头文件#include<string>

王子逸在2020-06-16 21:19:56追加了内容

还要吧if里的b改成啊a[i]

王子逸在2020-06-16 21:21:55追加了内容

然后把双引号改成单引号  AC了

王子逸在2020-06-16 21:22:50追加了内容

核心:

for(int i=0;i<a.size();i++)
    if(a[i]==' '){
        sum++;
    }

 

王子逸在2020-06-16 21:23:43追加了内容

@王俊杰

0
刘乐宸
刘乐宸
新手天翼
新手天翼
for(int i=0;i<strlen(a);i++)
        if(a[i]==' ')s++;

 

我要回答