经过两天的奋战,我的UVA字符串最后一道题目终于结束了,回首来时路,最感悟那一幕....
View Code
#include<stdio.h> #include<string.h> int main() { int T, i, l; while(scanf("%d",&T) && T) { getchar(); char st1[50][85], st2[50][85], st[500] = {'\0'}, _st[500]; for(i = 0;i < T; i++) { gets(st1[i]); gets(st2[i]); } gets(st); for(i = 0;i < T; i++) { if(strstr(st,st1[i]) != NULL) { //查找字符串st[i]在字符串st中第一次出现的位置 char *p = strstr(st,st1[i]);//返回指针p l = strlen(st1[i]); strcpy(_st,p+l);//将字符串st出现st[i]字符串之后的字符串先保留下来 *p = '\0';//在指针p处,加上结束标志 strcat(st,st2[i]);//把替换的字符串接到st后面 strcat(st,_st);//把保存的字符串接上 i--;//i--继续循环 } } puts(st); } return 0; }