在白书上面刘汝佳字符串推荐的最后一题!
做完这组题目,学了很多新的string库里面的函数。同时对scanf(),getchar(),gets()这些输入也有了一定的了解。
strcmp(s1,s2),字符串比较函数;
strcpy(s1,s2),字符串拷贝函数;
strcat(s1,s2),字符串连接;
strlen(s),测字符串长度;
strncmp(s1,s2,size),对s1和S2的前size个字符进行比较;
strstr(s1,s2),字符串寻找函数,在S1中寻找s2,如果存在就返回s2第一处出现的地方,否则返回NULL;
这道题目就是给你一些find字符串,每个find字符串对应一个replace字符串。要求对给定的一个字符串中找find串并将其换成replace串。每次查找都从头开始,直到找不到为止。
最后一题却把我难倒了,后来看别人用了指针,只能模仿一下= =
#include<stdio.h>
#include<string.h>
int main()
{
int T,i,j,k,l,n,m;
char findstr[1000][300],replacestr[1000][300];
char s[1000],tem[1000];
while(scanf("%d",&n)!=EOF)
{
getchar();
if(n==0)break;
for(i=0;i<n;i++)
{
gets(findstr[i]);
gets(replacestr[i]);
}
gets(s);
for(i=0;i<n;i++)
{
char *p,*q;
while(p=strstr(s,findstr[i]),p!=NULL) //查找find串,并用p记录位置
{
q=p+strlen(findstr[i]);
strcpy(tem,q);
*p='\0'; //把 s 串中p位置以后的全部清除。
strcat(s,replacestr[i]);
strcat(s,tem);
}
}
puts(s);
}
}