C语言中怎样设计一个函数实现两个字符串的连接

C语言中怎样设计一个函数实现两个字符串的连接,谢谢
2024-11-20 10:20:23
推荐回答(5个)
回答1:

1)简单来,直接用 strcat 函数,需要包含头文件 string.h

2)自己实现的话也不麻烦,但是要考虑一些细节:
假设两个字符串指针为 str1,str2 ,现在要讲 str1 和 str2 连接成一个新的字符串。
a.考虑指针 str1,str2 是否非空
b.如果将str2的内容直接连接到str1的末尾,要考虑str1是否有足够的剩余空间来放置连接上的str2的内容。
如果用一个新的内存空间来保存str1和str2的连接结果,需要动态分配内存空间。

回答2:

这个你可以定义两个字符数组。把那些需要合并的字符分别放在两个字符数组里。strcat函数将两个数组合并。例如 char arr1[10]="k", char arr2[2]="OM"; 用strcat(arr1,arr2);后面的就合并到arr1.

回答3:

char * strcat(char *s, const char *append)
{
//将s所指向的字符串的首地址保存下来,以便使用
char *save = s;
//将s所指向的字符串的首指针移至串尾处,s指针指向的字符元素为'\0'
for (; *s; ++s);
//将append所指的字符串的元素复制到s所指向的字符串尾部,直至遇到'\0'
while ((*s++ = *append++) != '\0');
//返回追加后的字符串首地址
return(save);
}

回答4:

#include "Stdio.h"
void cac(char s1[100],char s2[100])
{
int i=0,j=0;
while(s1[i]) i++ ;
i--;
while(s2[j])
s1[i++]=s2[j++];
s1[i]='\0';
}

int main(void)
{
char c1[100]={'\0'};
char c2[100]={'\0'};

printf("input c1:");
gets(c1);
printf("input c2:");
gets(c2);

cac(c1,c2);

puts(c1);

}

回答5:

void __strcat(char *str1, const char *str2)
{
ASSERT(str1!=NULL);
int nLen = strlen(str1);
char *p = str1+nLen;
while( ( *p++ = *str2++) != '\0');
}