展开全部
1)简单来,直接用 strcat 函数,需要包含头文件 string.h
2)自己实现的话也不麻烦,但是要考虑一些细节:
假设两个字符串指针为 str1,str2 ,现在要讲 str1 和 str2 连接成一个新的字符串。
a.考虑指针 str1,str2 是否非空
b.如果将str2的内容直接连接到str1的末尾,要考虑str1是否有足够的剩余空间来放置连接上的str2的内容。
如果用一个新的内存空间来保存str1和str2的连接结果,需要动态分配内存空间。
2)自己实现的话也不麻烦,但是要考虑一些细节:
假设两个字符串指针为 str1,str2 ,现在要讲 str1 和 str2 连接成一个新的字符串。
a.考虑指针 str1,str2 是否非空
b.如果将str2的内容直接连接到str1的末尾,要考虑str1是否有足够的剩余空间来放置连接上的str2的内容。
如果用一个新的内存空间来保存str1和str2的连接结果,需要动态分配内存空间。
展开全部
这个你可以定义两个字符数组。把那些需要合并的字符分别放在两个字符数组里。strcat函数将两个数组合并。例如 char arr1[10]="k", char arr2[2]="OM"; 用strcat(arr1,arr2);后面的就合并到arr1.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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);
}
{
//将s所指向的字符串的首地址保存下来,以便使用
char *save = s;
//将s所指向的字符串的首指针移至串尾处,s指针指向的字符元素为'\0'
for (; *s; ++s);
//将append所指的字符串的元素复制到s所指向的字符串尾部,直至遇到'\0'
while ((*s++ = *append++) != '\0');
//返回追加后的字符串首地址
return(save);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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);
}
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);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
void __strcat(char *str1, const char *str2)
{
ASSERT(str1!=NULL);
int nLen = strlen(str1);
char *p = str1+nLen;
while( ( *p++ = *str2++) != '\0');
}
{
ASSERT(str1!=NULL);
int nLen = strlen(str1);
char *p = str1+nLen;
while( ( *p++ = *str2++) != '\0');
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询