首页 > 技术文章 > 华为机试题

sxmcACM 2015-09-20 18:17 原文

题目大意: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 }
View Code

 

推荐阅读