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

2023-02-14,,,,

/*
有一个字符串,包含n个字符,编写一函数将此字符串中从第m个字符开始的全部字符串复制成另一个字符串
*/ #include <stdio.h>
#include <stdlib.h>
#include <string.h> #define MAX_SIZE 10
/*
p: 指针的指针(a pointer to pointer to char),
以 p 命名的内存空间 (variable) 中存储了指向一个指向字符指针的内存首地址 -- data type: 指针
变量 p 被初始化指向一个字符指针,此指针指向 "to"
*/
int replace(int m,int n,char **pStr1,char *pStr2)
{
if(m > n || m < 0)
return 0;
int str2Len = strlen(pStr2);
if(m + str2Len > n)
{
char *base = (char *) malloc(sizeof(m + str2Len + 1));
*base = '\0';
strcpy(base,*pStr1);//将str1复制到新存储空间中
*pStr1 = base;
}
char *pMove = *pStr1 + m -1;//指向第m个字符
while('\0' != *pStr2)
{
*pMove = *pStr2;
++pMove;
++pStr2;
}
*pMove = '\0';
return 1;
} int main()
{
char *baseStr1 = NULL;
char *baseStr2 = NULL;
int m,n;
scanf("%d", &n);
scanf("%d", &m);
baseStr1 = (char *) malloc(sizeof(char) * n + 1);
baseStr2 = (char *) malloc(sizeof(char) * MAX_SIZE);
scanf("%s", baseStr1);
scanf("%s", baseStr2);
int ret = replace(m,n,&baseStr1,baseStr2);
if(0 == ret)
printf("input errot \n");
else
printf("%s", baseStr1);
return 0;
}

23、有一个字符串,包含n个字符,编写一函数,将此字符串中从第m个字符开始的全部字符串复制成另一个字符串的相关教程结束。

《23、有一个字符串,包含n个字符,编写一函数,将此字符串中从第m个字符开始的全部字符串复制成另一个字符串.doc》

下载本文的Word格式文档,以方便收藏与打印。