(说明:此代码只作为参考,并非绝对的正确代码,但是保证AC)
题目:d结尾的单词个数
描述
有天小盼在学习英语课文的时候,看到了类似这样的句子:Miss white look, 它有一个长鼻子和一条短尾巴, Sarah 它有一双小眼睛和大耳朵。单词之间用空格隔开(可能有多个空格),小盼突发奇想,想知道以d结尾的单词有几个,但是有些句子长度太长,他算不过来,你能帮帮他吗?
输入描述
开头一行,给出一段句子,句子长度为S(0<=S<=1000000)。
输出描述
开头一行,输出一个整数,代表以单词d结尾的单词个数
参考代码:
#include<iostream>
#include<string.h>
using namespace std;
int main(){
string a;
int sum = 0;
getline(cin,a);
for(int i = 0;i<a.size();i++){
if(a[i]==' '){
if(a[i-1]=='d'){
sum++;
}
}
}
cout<<sum;
return 0;
}
代码解释:
-
#include <iostream>
:- 包含了输入输出流库,允许使用
cin
和cout
进行输入和输出操作。
- 包含了输入输出流库,允许使用
-
#include <string>
:- 包含了字符串库,允许使用
std::string
类型来处理字符串。
- 包含了字符串库,允许使用
-
using namespace std;
:- 引入了标准命名空间
std
,这样就可以直接使用cin
,cout
,string
等而不需要加上std::
前缀。
- 引入了标准命名空间
-
int main()
:- 定义主函数
main
,程序的入口点。
- 定义主函数
-
string a;
:- 声明一个字符串变量
a
,用于存储从用户输入读取的一行文本。
- 声明一个字符串变量
-
int sum = 0;
:- 声明一个整数变量
sum
并初始化为 0,用于计数字母d
后面直接跟一个空格的情况出现的次数。
- 声明一个整数变量
-
getline(cin, a);
:- 从标准输入(通常是键盘)读取一行文本,并将其存储在字符串
a
中。getline
函数会读取直到遇到换行符为止。
- 从标准输入(通常是键盘)读取一行文本,并将其存储在字符串
-
for (int i = 1; i < a.size(); ++i)
:- 使用
for
循环从字符串a
的第二个字符(索引 1)开始遍历到字符串的最后一个字符。这样可以确保在检查a[i-1]
时不会越界。
- 使用
-
if (a[i] == ' ' && a[i-1] == 'd')
:- 在循环中,检查当前字符
a[i]
是否为空格,并且前一个字符a[i-1]
是否为字母d
。如果这两个条件都满足,则说明找到了一个d
后面直接跟一个空格的情况。
- 在循环中,检查当前字符
-
sum++;
:- 如果上述条件成立,将
sum
的值加 1。
- 如果上述条件成立,将
-
cout << sum << endl;
:- 循环结束后,输出
sum
的值,即d
后面直接跟一个空格的情况出现的次数。endl
用于在输出后添加一个换行符。
- 循环结束后,输出
-
return 0;
:- 主函数返回 0,表示程序成功结束。