对一个字符串中插入另一个字符串(数组指针)
2022年 03月 20 日

BIGFISH

题目:给定一个目标字符串dest和待插入的字符串src,以及插入位置index.编程实现在dest的指定位置index后面插入src,返回插入之后的dest并打印.比如:dest为:hello,c!,src为:love,index为4,则返回dest为:hellloveo,c!.

要求:

1 用返回指针的函数实现。char *insert(char *dest,char *src,int index).

2 输入输出格式:

输入两行:第一行为:dest和src 中间用空格隔开,如:abc def.第二行为:index.

输出一行:为插入之后的字符串。

3 index为不小于0的int,dest,src是最大长度不超过50的字符串.如果index小于0或超过dest长度,均提示输出:“index illegal!”,退出程序。

程序运行示例:

hello world

3

helworldlo

 

# include 
# include 
char* sert(char* dest, char* src, int index , char *y);
int main(void)
{
	char k[50] = { 0 };
	char j[50] = { 0 };
	char h[100] = { 0 };
	char* p3 = &h[0];
	//printf("%p", p3);
	int temp;
	char* p1 = &k[0];
	char* p2 = &j[0];
	scanf("%s %s", &k,&j);
	scanf("%d", &temp);
    sert(p1, p2, temp,p3);

	printf("%s", h);
	//temp = strlen(p1);
	///printf("%c", p1[3]);
	return 0;
}

char* sert(char* dest, char* src, int index,char *y)
{
	int a, b ,c ,d ,e;
	b = strlen(dest);
	c = strlen(src);
	d = 0;
	e = 1;
	//printf("%s", p);

	if (index >= 0 && index < b && b <= 50 && c <= 50)
	{	
		strcpy(y, dest);
		char* p = &y[index + c];
		char* p1 = &dest[index];
		///printf("%p", p);
			//strcpy(dest[a + b + 2], dest[a]);
		//for (a = index; e <= b - index; a++)
		//{
		//	/*f = dest[a + c];
		//	dest[a + c] = dest[a];
		//	e++;
		//	printf("%d,%c\n", a, dest[a]);*/
		//	strcpy()
		//}

		strcpy(p, p1);
		//printf("jjj%c\n", y[index+c+1]);

		for (a = index; a < (index + c);a++)
		{
			y[a] = src[d];
		//	printf("ttt%c\n", y[a]);
			d++;
		}
		//printf("mmm%s\n", y);

		return y;
	}
	else if (index >= 0 && index >= b && b <= 50 && c <= 50)
	{
		strcpy(y, dest);
		d = 0;
		for (a = b; a < (b + c); a++)
		{
			y[a] = src[d];
			d++;
		}
		return y;
	}
	else
	{
		printf("index illegal!");
		return 0;
	}


}

对一个字符串中插入另一个字符串(数组指针)

题目:给定一个目标字符串dest和待插入的字符串src,以及插入位置index.编程实现在dest的指定位置index后面插入src,返回插入之后的dest并打印.比如:dest为:hello,c!,src为:love,index为4,则返回dest为:hellloveo,c!.

要求:

1 用返回指针的函数实现。char *insert(char *dest,char *src,int index).

2 输入输出格式:

输入两行:第一行为:dest和src 中间用空格隔开,如:abc def.第二行为:index.

输出一行:为插入之后的字符串。

3 index为不小于0的int,dest,src是最大长度不超过50的字符串.如果index小于0或超过dest长度,均提示输出:“index illegal!”,退出程序。

程序运行示例:

hello world

3

helworldlo

 

# include 
# include 
char* sert(char* dest, char* src, int index , char *y);
int main(void)
{
	char k[50] = { 0 };
	char j[50] = { 0 };
	char h[100] = { 0 };
	char* p3 = &h[0];
	//printf("%p", p3);
	int temp;
	char* p1 = &k[0];
	char* p2 = &j[0];
	scanf("%s %s", &k,&j);
	scanf("%d", &temp);
    sert(p1, p2, temp,p3);

	printf("%s", h);
	//temp = strlen(p1);
	///printf("%c", p1[3]);
	return 0;
}

char* sert(char* dest, char* src, int index,char *y)
{
	int a, b ,c ,d ,e;
	b = strlen(dest);
	c = strlen(src);
	d = 0;
	e = 1;
	//printf("%s", p);

	if (index >= 0 && index < b && b <= 50 && c <= 50)
	{	
		strcpy(y, dest);
		char* p = &y[index + c];
		char* p1 = &dest[index];
		///printf("%p", p);
			//strcpy(dest[a + b + 2], dest[a]);
		//for (a = index; e <= b - index; a++)
		//{
		//	/*f = dest[a + c];
		//	dest[a + c] = dest[a];
		//	e++;
		//	printf("%d,%c\n", a, dest[a]);*/
		//	strcpy()
		//}

		strcpy(p, p1);
		//printf("jjj%c\n", y[index+c+1]);

		for (a = index; a < (index + c);a++)
		{
			y[a] = src[d];
		//	printf("ttt%c\n", y[a]);
			d++;
		}
		//printf("mmm%s\n", y);

		return y;
	}
	else if (index >= 0 && index >= b && b <= 50 && c <= 50)
	{
		strcpy(y, dest);
		d = 0;
		for (a = b; a < (b + c); a++)
		{
			y[a] = src[d];
			d++;
		}
		return y;
	}
	else
	{
		printf("index illegal!");
		return 0;
	}


}

赞 (0)

猜您想看

评论区(暂无评论)

这里空空如也,快来评论吧~

我要评论