大众信息网

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

答案:3  mip版
解决时间 2021-01-16 23:09
  • 提问者网友:叫我女王
  • 2021-01-16 03:18
这是我自己写的、但老师说不许用系统函数什么的、要用指针变量、求大神指教并修改。
#include
#include
main()
{char a[]="abcd",b[]="efg";
printf("%s\n",strcat(a,b));
printf("%d",strlen(a));
getch();
}
最佳答案
  • 二级知识专家网友:纨绔ソ少年
  • 2021-01-16 04:15


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

//#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    printf("\nNew length is %d\n",ln);
    return 0;
}
全部回答
  • 1楼网友:全球变暖丶我心却变冷
  • 2021-01-16 05:57
# include  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  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); }
  • 2楼网友:吃貨一枚
  • 2021-01-16 05:23

#include<stdio.h> #include<string.h> #define maxlen 256 int main(){     char a[maxlen]="abcde";     char b[]="123";     int i,len = strlen(a);     char * str = a+len;     for(i=0;i<5;i++){     if(*(b+i)=='\0')break;     *str++ = *(b+i);     }     *str='\0';     printf("%s",a);     return 0; }

结果:

我要举报
如以上问答内容为低俗/色情/暴力/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!
点此我要举报以上问答信息
推荐资讯