P4【基礎】我是第幾個單詞 題解


題意

輸入一個英文句子,例如:“This is a Book.",可以看到句子是以“.”來作為結束符號的,並且單詞之間以一個空格來分隔。接着再輸入一個單詞A,請找出首次在句子中出現的與A相同的單詞,是句子中的第幾個單詞,若不存在,則輸出該句子中單詞字符的總個數。 例如對上句子而言,若輸入單詞“is”,則應輸出:2 若輸入單詞“isa”,則應輸出:11

輸入格式

第一行為以‘.’結束的一個詞組(僅由若干個單詞組成,單詞間由一空格隔開,除單詞和最后的“.”以外,不含其它字符)
第二行是一個單詞(不含空格)


輸出格式

一個整數

樣例輸入

This is a Book.
Book

樣例輸出

4

題解

將字符串分割,並將位置也同時存入vector容器,(注意處理末尾'\0')

代碼

#include <bits/stdc++.h>
using namespace std;
typedef pair<string,int> PSI; 

vector<PSI>v;   //前面存字符串,后面存位置
int sum, pos;
string s;

int main()
{
 getline(cin, s,'.');   //三個參數中第三個可以省略,第三個表示“碰到'.'就結束輸入”
  
 for(int i = 0; i < s.size(); i++)
 {
 	pos++;
 	string temp = "";
 	while(s[i] != ' ' && s[i] != '\0')
 	{
 		temp += s[i];
 		sum++,i++;	
 	}
 	v.push_back({temp,pos});  //c++11新特性
 }
 	
 cin >> s;
 for(auto x : v)    //c++11新特性
 	if(x.first == s) 
 	{
 		cout << x.second;
 		return 0;
 	} 
 
 cout << sum;
 
 return 0;
} 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM