题目描述
输入一个英文句子,例如:“This is a Book.",可以看到句子是以“.”来作为结束符号的,并且单词之间以一个空格来分隔。接着再输入一个单词A,请找出首次在句子中出现的与A相同的单词,是句子中的第几个单词,若不存在,则输出该句子中单词字符的总个数。 例如对上句子而言,若输入单词“is”,则应输出:2 若输入单词“isa”,则应输出:11
输入
第一行为以‘.’结束的一个词组(仅由若干个单词组成,单词间由一空格隔开,除单词和最后的“.”以外,不含其它字符)
第二行是一个单词(不含空格)
输出
一个整数
样例输入
This is a Book.
Book
样例输出
4
代码如下:
#include<iostream>
#include<string>
#include<cstring>
using namespace std;
int main(){
string a;
string b;
getline(cin,a);//有空格,使用getline()整行输入
cin>>b;
int n=a.find(b);
if(n==-1){//如果没有找到b
int sum=a.size();
for(int i=0;i<a.size();i++){
if(a[i]==' ' || a[i]=='.'){
sum--;
}
}
cout<<sum;
}else{//如果找到了b
int cnt=0;
for(int i=0;i<n;i++){
if(a[i]==' '){
cnt++;//计算单词数量
}
}
cout<<cnt+1;//输出
}
return 0;
}