c语言编程,利用函数把字符数组b,连接到字符数组a的后面,并返回字符数组a中新的长度。

这是我自己写的、但老师说不许用系统函数什么的、要用指针变量、求大神指教并修改。#include<stdio.h>#include<string.h>main(){char... 这是我自己写的、但老师说不许用系统函数什么的、要用指针变量、求大神指教并修改。
#include <stdio.h>
#include <string.h>
main()
{char a[]="abcd",b[]="efg";
printf("%s\n",strcat(a,b));
printf("%d",strlen(a));
getch();
}
展开
 我来答
White_MouseYBZ
2015-12-16 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6758万
展开全部

题目要连接是“字符数组”而非“字符串”。如下代码可以实现:

//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
int Connect_a_b(char *a,int la,const char *b,int lb){
    a+=la,la+=lb;
    while(*a++=*b++,lb--);
    return la;
}
int main(void){
    char s1[50]="Moonlight is in fr",*s2="ont of my bed.";
    int i,ln=Connect_a_b(s1,18,s2,14);
    for(i=0;i<ln;printf("%c",s1[i++]));
    printf("\nNew length is %d\n",ln);
    return 0;
}
流星不死
2014-02-22 · TA获得超过1662个赞
知道小有建树答主
回答量:1621
采纳率:0%
帮助的人:1325万
展开全部
# include <stdio.h>
int main(void)
{
char a[80],b[80];
int i,j;
gets(a);
gets(b);
for(i=0;a[i];i++);
for(j=0;b[j];j++,i++) a[i]=b[j];
a[i]='\0';
puts(a);
}

 非要用 指针变量的写法

# include <stdio.h>
int main(void)
{
char a[80],b[80];
int i;
char *p=a,*q=b;
gets(a);
gets(b);
for(i=0;a[i];i++)
p++;
for(;*q;p++,q++) *p=*q;
*p='\0';
puts(a);
}
更多追问追答
追问
请问for(i=0;a[i];i++);    for(j=0;b[j];j++,i++) a[i]=b[j];这两句是什么意思啊
追答
第一个for确定a数组的长度
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式