您的位置:首页 > 其它

uva 10115 Automatic Editing(strstr+sprintf)

2014-06-20 21:10 302 查看
题意是找到一个字符串里面的关键字,然后用另外的关键字来替换她。

学习了 strstr 和 sprintf 的用法。

代码:

#include <stdio.h>
#include <string.h>

int main()
{
#ifdef LOCAL
freopen("in.txt","r",stdin);
#endif // LOCAL

int k;
while (scanf("%d", &k) != EOF && k)
{
getchar();
char key[21][81], s[256], tmp[256];
for (int i = 0; i < 2 * k; i++)
{
gets(key[i]);
}
gets(s);

for (int i = 0; i < 2 * k; i += 2)
{
int len1 = strlen(key[i]);
int len2 = strlen(key[i + 1]);
while (1)
{
char *p;
p = strstr(s, key[i]);//找到匹配的地址
if(p == NULL)
break;
sprintf(tmp, "%s", p + len1);//将指针 p + strlen(key[i])之后的字符赋给tmp
sprintf(p, "%s", key[i + 1]);//将指针p之后赋上key[i+1]的字符串
sprintf(p + len2, "%s", tmp);//将key[i]之后的字符串还原
}
}
printf("%s\n", s);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: