华为机试题
题目大意:AAA?BBB?CCC? 分成:AAA BBB CCC
样例:
输入: AAA?BBB?CCC? ? 2 (即输入AAA?BBB?CCC?和?和2)
输出:BBB
思路代码:使用strtok截取字符串,并使用一个变量计数,将计数和截取的字符串装入map中,进行遍历即可。
1 #include <iostream> 2 #include <string.h> 3 #include <stdio.h> 4 #include <map> 5 using namespace std; 6 7 char strin[] = "AAA?BBB?CCC?"; 8 char seps[] = "?"; 9 char *token; 10 11 int main() 12 { 13 map<int ,char *> m; 14 printf( "%s\n\nTokens:\n", strin ); 15 token = strtok( strin, seps ); 16 int k = 1; 17 while( token != NULL ) 18 { 19 m.insert(pair<int,char *>(k++,token)); 20 token = strtok( NULL, seps ); 21 } 22 map<int,char *>::iterator it; 23 for(it = m.begin();it != m.end();it++) 24 { 25 if(it->first == 2) 26 { 27 cout<<it->first<<" "<<it->second<<endl; 28 } 29 30 } 31 }