#include<stdio.h>;
#include<string.h>;
#include<stdlib.h>;
#pragma warning (disable:4996);
char*my_str(char*p, char*q,const int n)
{
int x= strlen(p);
int y= strlen(q);
printf("%d\n", x);
printf("%d\n", y);
char*f = new char[x+y+1];
f[x+y] = 0;
for (int i = 0; i < n; i++)
{
*(f + i) = *(p + i);
}
for (int i = 0; i < y; i++)
{
*(f + i + n) = *(q + i);
}
for (int i = n; i < x; i++)
{
*(f + y + i) = *(p + i);
}
return f;
}
int main()
{
char a[] = "Beijing";
char b[] = "123";
//char f[] = "";
int n = 3;
char*f = my_str( a, b, n);
printf("%s\n", f);
system("pause");
return 0;
}
你是说char*f = new char[x+y+1];报错了?
恭喜你进阶到C++。
C里分配内存用 malloc,释放内存用 free。
C++ 用 new 和 delete。
char*f = (char*)malloc(x+y+1);