题目:给定一个目标字符串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; } }