c语言中两个字符串合并成一个字符串(不用strcat函数)

c语言中两个字符串合并成一个字符串(不用strcat函数)
比如说:str1[]={"abcdef"},str2[]={"decdfs"}
最后输出为abcdefdecdfs和decdfsabcdef
我知道用strcat函数可以很简单的合成,但是现在的问题是不用strcat函数怎样来写?

第1个回答  推荐于2018-05-06
void xstrcat(str1,str2)
{
int i,len1;
for(i=0;str1[i]!='\0';i++);
len1=i;
for(i=0;str2[i]!='\0';i++)
str1[i+len1]=str2[i];
}本回答被提问者和网友采纳
第2个回答  2006-11-23
可以这样做

int String_GetLength(char* s)
{
int i=0;
while (*s){
i++;
s++;}
return i;
}

char* String_Cat(char* s1,char* s2)
{
int size1=String_GetLength(s1);
int size2=String_GetLength(s2);
char* s=(char*)malloc(size1+size2+1);
memcpy(s,s1,size1);
memcpy(s+size1,s2,size2+1);
return s;
}
第3个回答  2006-11-23
kmlxk写的好

c语言中两个字符串合并成一个字符串(不用strcat函数)
str1[i+len1]=str2[i];}

用c语言编写程序,将两个字符串连接起来,不要用strcat函数
include <stdio.h>#include <string.h>void strc(char c1[],char c2[]);void main(){char s1[30]="abc";char s2[30]="def";strc(s1,s2); \/\/请在后面补充strc函数的功能,完成两个字符串的连接puts(s1);}void strc(char c1[],char c2[]){ \/\/请填空,完成两个字符串的连接...

[C语言] 不用strcat()函数,将两个字符串连接起来,试完善一下程序!!!
include<stdlib.h> int main(){ char s1[80],s2[40];int i=0,j=0;printf("Enter s1:");\/\/改成用gets函数 \/\/因为如果输入的字符串中间或末尾包含空格 \/\/用scanf函数会造成输入不正确 gets(s1);printf("Enter s2:");gets(s2);while('\\0'!=s1[i]){ i++;} while(1){ s1[i]=...

c语言! 编一程序,将两个字符串连接起来,不要用strcat函数.
思路:字符串连接先需要找到第一字符串的结束位置,接着把第二字符串元素放到第一字符串后面,最后加上结束标志即可。参考代码:拼接123和456 include<stdio.h>void mystrcat(char a[],char b[]){\/\/字符串连接函数 int i=0,j=0;while(a[i++]!='\\0');\/\/找到a的结束位置 i--;while(b[j...

C语言题目 将两个字符串连接起来不用strcat函数
strcat( char * dst , char* src ) 函数相当于 strcpy( dst+strlen(dst) , src)无论用哪一个,dst的串长都要设置大一点才行。例子;char dst[20]="hello " , src[]="world!!";strcat(dst,src);\/\/dst变成了hello world!!strcpy(dst+strlen(dst),src);\/\/即把src串复制到dst串的...

...将两个字符串连接起来,不要使用strcat函数 求大神,我这个代码哪里不...
函数头我就不和你写了!int a[20],b[20],i=0,j=0;while(a[i]!='\\0'){ i++;} while(b[i]!='\\0'){ a[i++]=b[i++];} a[i]='\\0';printf("%s",a);就可以了!!

c语言:编写程序将两个字符连接起来,不使用strcat函数。
to continue include<stdio.h> void main(void){ char ch1[20],ch2[10];int i=0,k=0;gets(ch1);gets(ch2);while(ch1[i]!='\\0')i++;while(ch2[k]!='\\0') \/\/这里是k不是i ch1[i++]=ch2[k++];ch1[i]='\\0'; \/\/完毕加结束符 printf("%s",ch1);} ...

...并输出(不要使用strcat函数)。用C语言求解详细过程。
void main(){ char s1[80],s2[40];int i=0,j=0;printf("\\ninput stringl:");scanf("%s",s1);printf("input string2:");scanf("%s",s2);while(s1[i]!='\\0')i++;while(s2[j]!='\\0')s1[i++]=s2[j++];s1[i]='\\0';printf("The new string is:%s\\n",s1);} ...

将两个字符串连接起来 不要用strcat函数
可以用.或者+应该就可以

[C语言] 不用strcat()函数,将两个字符串连接起来,试完善一下程序!
include<stdio.h> int main(){ char s1[80],s2[40];int i,j;printf("Enter s1:");scanf("%s",s1);printf("Enter s2:");scanf("%s",s2);for(i=0;s1[i];i++);for(j=0;s1[i++]=s2[j++];);printf("\\nResult is:%s",s1);getch();return 0;} ...

相似回答