前辈们请留步 (任意长度)字符串连接怎么实现
输入任意长度的俩个字符串(利用动态分区),再将俩个字符串连接在一起。
----------------解决方案--------------------------------------------------------
连接用strcpy
动态分区是malloc
函数实现
----------------解决方案--------------------------------------------------------
strcat和strcpy啥区别请问
[color=white]
----------------解决方案--------------------------------------------------------
strcat是标准的连接字符串的函数
----------------解决方案--------------------------------------------------------
写到这里了,怎么不能实现连接......
#include<stdio.h>
#include<stdlib.h>
void main()
{
char *s,*h,*d,*r;
int n,i,j;
printf("input n= ");
scanf("%d",&n);
s=(char *)malloc(n*sizeof(char));
for(h=s,i=1;i<=n;i++)
{scanf("%c",h++);
getchar();}
h='\0';
printf("input j= ");
scanf("%d",&j);
r=(char *)malloc(j*sizeof(char));
for(d=r,i=1;i<=j;i++)
{scanf("%c",d++);
getchar();}
d='\0';
strcat(*h,*d);
printf("%s",*h);
}
----------------解决方案--------------------------------------------------------
写到这里了,怎么不能实现连接......
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void main()
{
char *s,*h,*d,*r;
int n,i,j;
printf("input n= ");
scanf("%d",&n);
s=(char *)malloc(n*sizeof(char));
for(h=s,i=1;i<=n;i++)
{scanf("%c",h++);
getchar();}
h='\0';
printf("input j= ");
scanf("%d",&j);
r=(char *)malloc(j*sizeof(char));
for(d=r,i=1;i<=j;i++)
{scanf("%c",d++);
getchar();}
d='\0';
strcat(*h,*d);
printf("%s",*h);
}
----------------解决方案--------------------------------------------------------
回复 2# zhuwei168 的帖子
strcpy函数的作用是把字符串复制到字符数组确定的字符数组中,如:char s1[10],s2 [10]={"abcd"}; strcpy(s1,s2); 把s2中的字符串复制到s1中......试了一下,strcpy不能实现字符串连接......
----------------解决方案--------------------------------------------------------
你怎么因该用*的地方不用,不应该用的地方瞎用啊??
----------------解决方案--------------------------------------------------------
那什么地方该用,什么地方不该用呢?
----------------解决方案--------------------------------------------------------