| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 978 人关注过本帖
标题:自己写了一个字符串连接函数。
只看楼主 加入收藏
code力力
Rank: 5Rank: 5
来 自:宜昌
等 级:职业侠客
威 望:2
帖 子:215
专家分:338
注 册:2015-1-12
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:17 
自己写了一个字符串连接函数。
程序代码:
      # include<stdio.h>
char* mystrcat(char a[ ],char b[ ])
{
    int  j=0 , i ;
    for  (i=0;1<2;i++)
       if(a[i] != '\0')
         j++;                       //测a的有效长度
       else
         break;
           
      for(i=j;1<2;i++)
       {
    a[i]=b[i-j];
    if(b[i-j]=='\0')
    break;
      }
    return (a);
}

     //主函数
int main(void)
{
    char str1[ ]="i am ";
    char str2[ ]="a student";
    
    puts(   mystrcat (str1,str2)   );
    
    
    return 0;
} 

新手学习,呵呵,大家给点意见
搜索更多相关主题的帖子: 字符串 
2015-01-24 13:41
砖家的谎言
Rank: 12Rank: 12Rank: 12
等 级:禁止访问
威 望:30
帖 子:693
专家分:3898
注 册:2013-12-6
收藏
得分:5 
可以的,不错,加油!

我不是砖家,要努力成为砖家。
2015-01-24 14:37
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:5 
1、str1存在越界问题
2、for  (i=0;1<2;i++) 循环的终止为恒等式,在循环体内做判断和break,多此一举

总有那身价贱的人给作业贴回复完整的代码
2015-01-24 16:00
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:5 
意见很多,没法详说。

授人以渔,不授人以鱼。
2015-01-24 16:39
code力力
Rank: 5Rank: 5
来 自:宜昌
等 级:职业侠客
威 望:2
帖 子:215
专家分:338
注 册:2015-1-12
收藏
得分:0 
回复 4楼 TonyDeng
很多!!?

你醒了?快起来敲代码!!
2015-01-24 17:03
code力力
Rank: 5Rank: 5
来 自:宜昌
等 级:职业侠客
威 望:2
帖 子:215
专家分:338
注 册:2015-1-12
收藏
得分:0 
回复 3楼 embed_xuel
什么是越界?

你醒了?快起来敲代码!!
2015-01-24 17:06
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
当然很多,基本上,可以看出你心目根本没有一个模型指导你处理问题。

授人以渔,不授人以鱼。
2015-01-24 17:08
code力力
Rank: 5Rank: 5
来 自:宜昌
等 级:职业侠客
威 望:2
帖 子:215
专家分:338
注 册:2015-1-12
收藏
得分:0 
回复 7楼 TonyDeng
我是自学的,学了一个月左右吧,希望给点指导,谢谢大侠

你醒了?快起来敲代码!!
2015-01-24 17:21
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:5 
这也行啊?不要命了。
你把main函数改下,在最前面申明一个初始化的int变量,你就看到错误所在了
int main(void)
{
    int a=1234;
    char str1[ ]="i am ";
    char str2[ ]="a student";
   
    puts(   mystrcat (str1,str2)   );
    printf("\n");
    printf("%d\n",a);//这里怎么显示不出1234呢?
   
    return 0;


[ 本帖最后由 wmf2014 于 2015-1-24 17:32 编辑 ]

能编个毛线衣吗?
2015-01-24 17:25
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你没有模型,我给你一个:想象数组就是在墙上打出一排洞(洞在墙上,表明位置是固定的,不能变,洞的数目也打好了,不能变),每个洞可以放一个小球。这里,洞的数量就是数组创建时可以容纳数据的最大个数,比如x[10],表示数组x有10个洞;小球呢,就是数组的内容,它放在哪个洞中有编号,即洞的位置。于是,你可以想到,10个洞未必都放满小球的,但最多只能放10个,多了就叫溢出,或越界。那么,10个洞到底有多少小球呢?C语言很蠢,它要从头开始按顺序查看每个洞是不是有小球,一直查到其中一个洞,孙悟空在这里撒了一泡尿(空字符'\0'),就算是到此为止了——如果一直找不到,会怎样呢?那看你是怎么找的了。

好了,现在根据这个模型看你的问题。你要做字符串拼接,墙上有两排洞,各自不知放了多少个小球,你想把第二排洞里的小球都搬(或复制)到第一排后面接驳起来。你先想想吧,需要考虑哪些情形?提示你最简单的一个:你首先得保证第一排洞真的可以放得下两排洞所有的小球,并加上那一泡尿!

授人以渔,不授人以鱼。
2015-01-24 17:37
快速回复:自己写了一个字符串连接函数。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016344 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved