用c++编程时 第一行是一个正整数n(int范围),表示共有n个字符串 怎么写

急~谢
描述给定一个字符串,求字符串中恰好出现2次的第一个字符。输入第一行是一个正整数n(int范围),表示共有n个字符串。
下面n行,每行是一个字符串,字符串的长度在int范围内。字符串由小写字母,大写字母和数字构成,不包含其他字符。

#include <iostream>
#include <string>
#include <map>
#include <vector>
using namespace std;

int main(){
int n=0;//n个字符窜 
cin>>n;
vector<string> r; //保存n个字符窜 
string s;//保存单个字符窜 


for(int c=0;c<n;c++){
cin>>s;//输入单个字符窜 
r.push_back(s);//保存n个 
}

for(int k=0;k<n;k++){
s =r[k];//提取字符窜 
map<char,int> abc;
for(int i=0;i<s.length();i++){
if(abc.count(s[i])==1){//如果找到了说明是第二次找到,直接输出退出循环 
cout<<s[i]<<endl;
break;
} //假设字符窜为abcc  找a,不在,key为(a),找b,不在key为(a,b),找c,不在,key为(a,b,c),找a,存在执行上面的if 
if(abc.count(s[i])==0){//map是由key,value组成。本来为空,查找是否有key为第一个字符的,没有加入 
abc.insert(make_pair(s[i],1));
}
}
}
system("pause");
return 0;
}

温馨提示:答案为网友推荐,仅供参考