ccf 201409-3 字符串匹配(toupper,tolower)
阿新 • • 發佈:2018-03-10
cout 分享 type style 串匹配 clu 寫敏感 string 字母
第二行包含一個數字,表示大小寫敏感的選項,當數字為0時表示大小寫不敏感,當數字為1時表示大小寫敏感。
第三行包含一個整數n,表示給出的文字的行數。
接下來n行,每行包含一個字符串,字符串由大小寫英文字母組成,不含空格和其他字符。
ccf 201409-3 字符串匹配(toupper,tolower)
問題描述 給出一個字符串和多行文字,在這些文字中找到字符串出現的那些行。你的程序還需支持大小寫敏感選項:當選項打開時,表示同一個字母的大寫和小寫看作不同的字符;當選項關閉時,表示同一個字母的大寫和小寫看作相同的字符。 輸入格式 輸入的第一行包含一個字符串S,由大小寫英文字母組成。第二行包含一個數字,表示大小寫敏感的選項,當數字為0時表示大小寫不敏感,當數字為1時表示大小寫敏感。
第三行包含一個整數n,表示給出的文字的行數。
接下來n行,每行包含一個字符串,字符串由大小寫英文字母組成,不含空格和其他字符。
toupper,tolower
地球人都知道 C++ 的 string 沒有 toupper ,好在這不是個大問題,因為我們有 STL 算法:
string s("heLLo");
transform(s.begin(), s.end(), s.begin(), ::toupper);
cout << s << endl;
transform(s.begin(), s.end(), s.begin(), ::tolower);
cout << s << endl;
transform的頭文件為algorithm
1 #include<iostream> 2 #include<cstring> 3 #include<vector> 4 #include<stdio.h> 5 #include<algorithm> 6 using namespace std; 7 vector<string> ans; 8 int main() 9 { 10 string aim; 11 cin>>aim; 12 int type,n; 13 cin>>type>>n;14 getchar(); 15 if(type == 1)//大小寫敏感 16 { 17 for(int i=0;i<n;i++) 18 { 19 string str; 20 getline(cin,str); 21 if(str.find(aim) != -1) 22 ans.push_back(str); 23 } 24 } 25 else { 26 transform(aim.begin(),aim.end(),aim.begin(),::tolower);27 for(int i=0;i<n;i++) 28 { 29 30 string temp; 31 getline(cin,temp); 32 string str = temp; 33 transform(str.begin(),str.end(),str.begin(),::tolower); 34 if(str.find(aim) != -1) 35 ans.push_back(temp); 36 } 37 } 38 for(int i=0;i<ans.size();i++) 39 cout<<ans[i]<<endl; 40 return 0; 41 }
ccf 201409-3 字符串匹配(toupper,tolower)