| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1530 人关注过本帖
标题:哪位大哥帮帮忙看看怎么改下 字符串复制问题
只看楼主 加入收藏
fairy_tail
该用户已被删除
收藏
得分:0 
回复 10楼 yangang2
提示: 作者被禁止或删除 内容自动屏蔽
2010-09-27 00:41
ToBeOOP
Rank: 3Rank: 3
等 级:论坛游侠
威 望:3
帖 子:106
专家分:181
注 册:2010-7-8
收藏
得分:0 
额...这个程序不能防止拷贝超出界限...
2010-09-27 06:12
ToBeOOP
Rank: 3Rank: 3
等 级:论坛游侠
威 望:3
帖 子:106
专家分:181
注 册:2010-7-8
收藏
得分:0 
程序代码:
#include <iostream>
using std::cout;
using std::endl;
char *strcpy(char* strDest ,const char* strSrc);
int main ()
{
    char adress[ ]="String Copy";
    char Dst [ ]="Why fdfefdsfefsdf";
    cout<<strcpy(Dst,adress)<<endl;
    system ("Pause");
    return 0;
}
char *strcpy(char* strDest ,const char* strSrc)
{
    if ( *strDest == NULL || *strSrc == NULL )
    {  
        cout<<"strDest == NULL || strSrc == NULL"<<endl;  
    }
    while ( (*strDest++ = *strSrc++ ) != '\0' )  
    {
         ;
    }
    return strDest;
}

主要原因是目标字符串的长度没有源字符串的长.....
2010-09-27 06:19
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:0 
#include<iostream.h>
#include <malloc.h>
char *strcpy(char* strDest ,const char* strSrc);
void main ()
{
    char adress[]="String Copy woieuoifji";
    char *Dst = 0;
    Dst = strcpy(Dst,adress);
    cout<<Dst<<endl;   
}
char *strcpy(char* strDest ,const char* strSrc)
{
    int i = 0;
    if ( strSrc == NULL )
    {   
        cout<<"strDest == NULL || strSrc == NULL"<<endl;   
    }
   else
   {
       strDest = (char *) malloc (2*sizeof(char));
       *(strDest+1)='\0';
   }
    while ( *strSrc != '\0' )   
    {
        *(strDest+i) = *strSrc++;
        ++i;
        strDest = (char *) realloc (strDest, (i+1)*sizeof(char));
        *(strDest+i) = '\0';
    }
    return strDest;
}
2010-09-27 18:19
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:0 
你要确保你向拷贝函数传递的参数的生存期,也就是要把他放到堆中,不能让系统默认放在栈中 这样函数执行完了就会被释放掉

                                         
===========深入<----------------->浅出============
2010-09-30 20:19
lyj2010lyj
Rank: 2
等 级:论坛游民
帖 子:25
专家分:27
注 册:2010-9-28
收藏
得分:0 
以下是引用fairy_tail在2010-9-26 10:49:30的发言:

int *p是说p是指向int型的指针  char* p怎么解释?
说的在理
2010-09-30 20:53
快速回复:哪位大哥帮帮忙看看怎么改下 字符串复制问题
数据加载中...
 
   



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

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