题目描述
输入一个英文句子,例如:“This is a Book.",可以看到句子是以“.”来作为结束符号的,并且单词之间以一个空格来分隔。接着再输入一个单词A,请找出首次在句子中出现的与A相同的单词,是句子中的第几个单词,若不存在,则输出该句子中单词字符的总个数。 例如对上句子而言,若输入单词“is”,则应输出:2 若输入单词“isa”,则应输出:11
输入
第一行为以‘.’结束的一个词组(仅由若干个单词组成,单词间由一空格隔开,除单词和最后的“.”以外,不含其它字符)
第二行是一个单词(不含空格)
输出
一个整数
样例输入
This is a Book.
Book
样例输出
4
代码
#include<bits/stdc++.h>
using namespace std;
bool judge(char *s1,char *s2){
bool r = true;
int i = 0;
if(strlen(s1) != strlen(s2)){
r = false;
}else{
for(i = 0;i < strlen(s1);i++){
if(s1[i] != s2[i]){
r = false;
break;
}
}
}
return r;
}
int main(){
char s[1000];
char f[100];
cin.getline(s,1000);
cin.getline(f,100);
char w[100] = {'\0'};
int i = 0,j = 0;
int c = 0;
int x = 0;
bool r = false;
for(i = 0;s[i] != '.';i++){
if(s[i] != ' '){
w[j] = s[i];
j++;
x++;
if(s[i + 1] == ' ' || s[i + 1] == '\0' || s[i + 1] == '.'){
w[j] = '\0';
c++;
if(judge(w,f)){
cout<<c<<endl;
r = true;
break;
}
j = 0;
}
}
}
if(r == false){
cout<<x<<endl;
}
return 0;
}