替换字符串中的一部分#C语言

有一字符串,包含n个字符。写一函数,将此字符串中第m个字符开始的全部字符复制成另一个字符串。

例如:

输入 :

请输入原始字符串:reading
请输入替换字符串:room
请输入从第几位开始替换:5

输出:

readroom

要注意替换后原始字符串多出来的部分要补在后面

代码如下:(无函数)

#include<stdio.h>
#include<string.h>
int main()
{
	char a[20],b[20],c[40];
	int m,i,j,l,k,f;
	printf("请输入原始字符串:");
	gets(a);
	printf("请输入替换字符串:");
	gets(b);
	printf("请输入从第几位开始替换:");
	scanf("%d",&m);
	k=strlen(a);
	for(i=0;i<m-1;i++)
	{
		c[i]=a[i];
	}
	l=m-1;
	j=0;
	while(b[j]!='\0')
	{
		c[l]=b[j];
		j++;
		l++;
	}
	if(k>l)        //处理原始字符串多出来的部分
	{
		for(;a[l]!='\0';l++)
		{
			c[l]=a[l];
		}
	}
	c[l]='\0';
	puts(c);
	return 0;
}

(有函数): 

#include<stdio.h>
#include<string.h>
void th(char a[],char b[],int m);
int main()
{
	char a[20],b[20];
	int m;
	printf("请输入原始字符串:");
	gets(a);
	printf("请输入替换字符串:");
	gets(b);
	printf("请输入从第几位开始替换:");
	scanf("%d",&m);
	th(a,b,m);
	return 0;
}
void th(char a[],char b[],int m)
{
	int k,i,j;
	char c[40];
	k=strlen(a);
	for(i=0;i<m-1;i++)
	{
		c[i]=a[i];
	}
	j=0;
	while(b[j]!='\0')
	{
		c[i]=b[j];
		j++;
		i++;
	}
	if(k>i)        //处理原始字符串多出来的部分
	{
		while(a[i]!='\0')
		{
			c[i]=a[i];
			i++;
		}
	}
		c[i]='\0';
		puts(c);
}


版权声明:本文为zhangruotong原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。