使用C中的指针进行字符串连接!

sta*_*ion 0 c pointers

我使用C中的指针编写了以下代码用于字符串连接

#include<stdio.h> 
#include<stdlib.h>
#include<string.h>
void strCat(char *str1,char *str2);
int main(void)
{
char str1[] = "Rohit";
char str2[] = "Kumar";  
strCat(str1,str2);
return 0;
}

void strCat(char *str1,char *str2)
{
int i;
char *start;
start = str1;
printf("%s",str1);
while(*str1++ != '\0')
    continue;
while(*str2 != '\0')
    *str1++ = *str2++;
*str1 = '\0';

printf("%s\n",str1);
}
Run Code Online (Sandbox Code Playgroud)

为什么输出是Rohit(null).请帮忙!!

cni*_*tar 5

嗯,首先str1不够长,不适合两个字符串.

这里

while(*str2 != '\0')
    *str1++ = *str2++; /* You are overstepping str1 -> undefined behavior */
Run Code Online (Sandbox Code Playgroud)

代码还有其他问题.也许你应该尝试一下string.h strcat呢?