VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 172|回复: 6

[求助] 不知道返回值怎么弄

[复制链接]
59_avatar_middle
在线会员 发表于 2019-10-7 20:33:51 | 显示全部楼层 |阅读模式
char new_strcat(char a[], char b[])
{
        int m = 0, n = 0;
        while ( a[m]!='\0')
        {
                m++;
        }
        while (b[n]!='\0')
        {
                n++;
        }
        a[m++] = b[n++];
        return  a[] ;
}
void main()
{
        char A[50] = "cctry.com";
        char B[50] = "hello china";
        new_strcat(A, B);
        cout << A << endl;
        return;
}
这个是我做类似strcat的函数,但是我第一个函数返回值有问题,不知道怎么弄。求解  谢谢




上一篇:Windows桌面应用程序窗口透明相关问题
下一篇:实用C++课后习题疑惑
85_avatar_middle
在线会员 发表于 2019-10-7 22:23:30 | 显示全部楼层
楼主我觉得你的这个strcat不需要返回值,如果真要返回值,那就判断a的剩余空间是否大于b的宽度,防止溢出。

我写了一个strcat的示例,非常不安全,没有检查数组越界的问题。。但也算能实现目的吧。



  1. #include <stdio.h>

  2. int new_strcat(char a[],char b[]){
  3.         int m = 1,n = 1;
  4.         while(a[m]!='\0'){
  5.                 m++;
  6.         }
  7.         while(b[n]!='\0'){
  8.                 a[m++] = b[n];
  9.                 n++;
  10.         }
  11.         printf("a length : %d, b length : %d , a : %s \n",m,n,a);
  12.         return 0;
  13. }

  14. int main(){
  15.         char a[100]="123\0";
  16.         char b[10]= "456\0";
  17.         new_strcat(a,b);
  18.         return 0;
  19. }
复制代码


不知道返回值怎么弄

评分

参与人数 1驿站币 +2 热心值 +2 收起 理由
58_avatar_small 敏敏 + 2 + 2 赞一个!

查看全部评分

85_avatar_middle
在线会员 发表于 2019-10-7 22:26:54 | 显示全部楼层
  1. #include <stdio.h>

  2. char * new_strcat(char a[],char b[]){
  3.         int m = 1,n = 1;
  4.         while(a[m]!='\0'){
  5.                 m++;
  6.         }
  7.         while(b[n]!='\0'){
  8.                 a[m++] = b[n];
  9.                 n++;
  10.         }
  11.         printf("a length : %d, b length : %d , a : %s \n",m,n,a);
  12.         return a;
  13. }

  14. int main(){
  15.         char a[100]="123\0";
  16.         char b[10]= "456\0";
  17.         printf("strcat : %s \n", new_strcat(a,b));
  18.         return 0;
  19. }
复制代码


返回char *的例子:

不知道返回值怎么弄

评分

参与人数 1驿站币 +2 热心值 +2 收起 理由
58_avatar_small 敏敏 + 2 + 2 很给力!

查看全部评分

84_avatar_middle
在线会员 发表于 2019-10-7 21:37:16 | 显示全部楼层
可以做成循环输出吧
84_avatar_middle
在线会员 发表于 2019-10-7 21:38:41 | 显示全部楼层
要不,加个指针?
82_avatar_middle
在线会员 发表于 2019-10-7 22:15:45 | 显示全部楼层
返回值应该是 char* 才对
59_avatar_middle
ico_lz  楼主| 发表于 2019-10-9 06:48:55 来自手机 | 显示全部楼层
Maxson 发表于 2019-10-7 22:23
楼主我觉得你的这个strcat不需要返回值,如果真要返回值,那就判断a的剩余空间是否大于b的宽度,防止溢出。 ...

好的,谢谢了。
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2019-10-19 18:57

Powered by Discuz! X3.4

© 2009-2019 cctry.com

快速回复 返回顶部 返回列表