C语言字符串连接函数 15
我就想把chara[]="abc",b[]="xyz";把他们两个连接,把a变成,a[]="abcxyz";请问怎么编程?用系统函数也可以,自己写的也可以是在linux下...
我就想把char a[]="abc",b[]="xyz";
把他们两个连接,把a变成,a[]="abcxyz";
请问怎么编程?用系统函数也可以,自己写的也可以
是在linux下写的 展开
把他们两个连接,把a变成,a[]="abcxyz";
请问怎么编程?用系统函数也可以,自己写的也可以
是在linux下写的 展开
5个回答
展开全部
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int
main(void)
{
char a[] = "abc";
char b[] = "xyz";
char *p;
if ((p = malloc((strlen(a) + strlen(b) + 1) * sizeof(char))) == NULL) {
fprintf(stderr, "malloc error!\n");
abort();
}
strcpy(p, a);
strcat(p, b);
puts(p);
if (p)
free(p);
exit(0);
}
#include <stdlib.h>
#include <string.h>
int
main(void)
{
char a[] = "abc";
char b[] = "xyz";
char *p;
if ((p = malloc((strlen(a) + strlen(b) + 1) * sizeof(char))) == NULL) {
fprintf(stderr, "malloc error!\n");
abort();
}
strcpy(p, a);
strcat(p, b);
puts(p);
if (p)
free(p);
exit(0);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先要考率数组a的内存空间,因为要把b连接在后面,所以在一开始定义数组a的时候应该写上a[N]=“?”这个N的大小肯定要大于等于原先a实际的长度加b的长度+1,加1是给结尾的'\'0'留个空间。不过这样也不能保证它的危险性,最好使用strncat函数,它能指定连接前者的字符个数,比较安全
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
strcat;a的内存长度不够,要出错的。多看一下书,再练习吧。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
char a[32]="abc",b[4]="xyz";
strcat(a,b);
printf("a=%s",a);
strcat(a,b);
printf("a=%s",a);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
int main(){
char a[]="abc";
char b[]="xyz";
Concat(&T,a[],b[]);
}
int main(){
char a[]="abc";
char b[]="xyz";
Concat(&T,a[],b[]);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询