UVA 10115 Automatic Editing

在白书上面刘汝佳字符串推荐的最后一题!

做完这组题目,学了很多新的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);
	}
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值