大意略。
思路:练习练习map的使用,代码丑了点,但总算AC了, - -!~
#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <cstring>
#include <string>
#include <map>
using namespace std;
map<string, string> Map;
char s1[15], s2[15];
char ans[50010];
void solve()
{
while(scanf("%s", s1) && strcmp(s1, "END"))
{
scanf("%s", s2);
Map[s2] = s1;
}
scanf("%s%*c", s1);
while(gets(ans) && strcmp(ans, "END"))
{
int len = strlen(ans);
char save[20];
for(int i = 0, tot = 0; i < len; i++)
{
if(isalpha(ans[i]))
{
save[tot++] = ans[i];
}
else
{
save[tot] = '\0';
if(Map.find(save) != Map.end()) cout<<Map[save];
else printf("%s", save);
printf("%c", ans[i]);
tot = 0;
}
}
printf("\n");
}
}
int main()
{
while(~scanf("%s", s1))
{
solve();
}
return 0;
}
本文通过一个具体的编程实例,展示了如何使用C++中的map容器来处理字符串映射问题。通过对输入字符串进行查找和替换,实现了从短字符串到其对应长字符串的转换。此过程涉及到了C++标准库中map的基本操作及文件读写等知识点。
1238

被折叠的 条评论
为什么被折叠?



