C语言 strcat 拼接字符串,动态分配内存 C语言问题,将两个字符串连接起来,要求不用strcat()函...

C\u8bed\u8a00strcat\u51fd\u6570\u5b57\u7b26\u4e32\u7a7a\u95f4\u5bb9\u7eb3\u7684\u95ee\u9898

\u8fd9\u8ddf\u7cfb\u7edf\u5206\u914d\u5185\u5b58\u76f8\u5173\u7684\uff0c\u64cd\u4f5c\u7cfb\u7edf\u4e3a\u6bcf\u4e2a\u8fdb\u7a0b\u4f1a\u5206\u914d\u6bd4\u8f83\u5927\u7684\u5185\u5b58\uff0c\u6240\u4ee5\u4e0d\u4f1a\u62a5\u9519\uff0c\u4f46\u662f\u8fd9\u79cd\u5199\u6cd5\u4f1a\u5b58\u5728\u6f5c\u5728\u7684BUG

#include
#include
char *mystrcat(char *s1,char *s2)
{int i,j,k;
char *p;
for(i=0;*(s1+i);i++);
for(j=0;*(s2+j);j++);
p=(char*)malloc(i+j+1);
*(p+i+j)='\0';
for(k=i--;i>=0;i--)*(p+i)=*(s1+i);
for(i=k+(--j);j>=0;)*(p+i--)=*(s2+j--);
return p;
}
int main()
{char s1[100],s2[100],*p;
gets(s1);
gets(s2);
p=mystrcat(s1,s2);
printf("%s\n",p);
return 0;
}

char* StringCat(char* pszOld, char* pszCat){
int nLen = strlen(pszOld) + strlen(pszCat);

char* pszTemp = new char(nLen);

if(pszTemp){

memset(pszTemp, 0, nLen);

strcpy(pszTemp, pszOld);

strcat(pszTemp, pszCat);
return pszTemp;

}
return NULL;

}
使用这个函数就行了,记得用完要 delete 获取到的字符串哦,否则会内存泄露。

扩展阅读:c语言static的用法 ... 中英文自动翻译器 ... c++编程 ... c语言strcmp函数头文件 ... matlab strcat拼接图像 ... strcat使用范例 ... c#编译器手机版下载 ... c语言strcmp源代码 ... strcat函数详解 ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网