喜悦国际村 
» 游客:  注册 | 登录 | 搜索 | 统计 | 喜悦证交所 | 帮助

RSS 订阅当前论坛  

[北京]代朋友公司招聘PHP高级程序员多名

上一主题 下一主题
     
标题: [问题] 一个指针问题?望高手指教!  
 
hellogo
新手上路
Rank: 1



UID 83363
精华 0
积分 6
帖子 2
金钱 6 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2006-11-17
状态 离线
一个指针问题?望高手指教!

#include <stdio.h>
char *strcat(char *dst,char *src){
        char *t;
        t=dst;
        while(*t!='\0'){
                ++t;
        }

        while(*src!='\0'){
                *t=*src;
                t++;
                src++;
        }
        *t='\0';
        return dst;

}

  void   main()   {
  char   *str1,*str2;
  char   *p="hello",*q="world";
  str1=p;
  str2=q;
   
  printf("%s\n",   strcat(str1,str2));  
  }  
由于作业的要求,自己用指针写了一个字符串连接的函数。

上面的程序测试成功,输出helloworld,
但当连接两个相同的字符串时就有问题了,我想输出hellohello
例如把上面的 printf("%s\n",   strcat(str1,str2));  改为
             printf("%s\n",   strcat(str1,str1));  为什么输出不了hellohello

望高手指教。谢谢了!
2006-12-19 09:30 PM#1
查看资料  发短消息  顶部
 
zhagmigmig
新手上路
Rank: 1



UID 80371
精华 0
积分 12
帖子 19
金钱 12 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2006-9-21
状态 离线
[推荐阅读] 关于zend
把第2个while循环改成:

char *end=src;
while (*end++!='\0');
while(src!=end)
{
   *t=*src;
   t++;
   src++;
}
应该就可以了。
2006-12-24 04:08 PM#2
查看资料  发短消息  顶部
 
奶瓶 (NP博士)
版主
Rank: 7Rank: 7Rank: 7
老仙


UID 52707
精华 4
积分 5480
帖子 6102
金钱 5430 喜悦币
威望 50
人脉 0
阅读权限 100
注册 2004-11-22
来自 北大中文系
状态 在线
[推荐阅读] 求一PHP正则表达式写法
这个会导致溢出的
需要确保dist的空间足够
或者换一个方式,不要修改dist,直接返回一个新的char *





图片包子,注册送100包子!
2006-12-31 01:50 PM#3
查看资料  访问主页  Blog  发短消息  QQ  ICQ 状态  Yahoo!  顶部
     


  可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题 | 开通个人空间  


 




Powered by Discuz! 6.1.0  © 2001-2010 Comsenz Inc.
Processed in 0.021188 second(s), 6 queries

(冀ICP备05009913号) 管理员:sadly 邮箱/MSN: sadly@phpx.com QQ:824008(长隐) 清除 Cookies - - Archiver - WAP