| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1553 人关注过本帖
标题:[求助]急......关于strcpy函数
取消只看楼主 加入收藏
六道
Rank: 1
等 级:新手上路
帖 子:120
专家分:0
注 册:2007-9-28
收藏
 问题点数:0 回复次数:6 
[求助]急......关于strcpy函数

自定义个strcpy函数,编程如下:
#include<iostream.h>
#include<iostream.h>

char *strcpy(char *dest,const char *scr);
void main()
{
char *from="asdasdasd";
char *to;
if((to=new char[sizeof(from)+1])==NULL)
{
cout<<"not neough memory.";
exit(1);
}
strcpy(to,from);
cout<<from<<endl
<<to<<endl;
delete[]to;
}

char *strcpy(char *dest,const char *scr)
{
if(scr==NULL)
cout<<"原字符串为空."<<endl;
else
{
while(*scr!='\0')
*(dest++)=*(scr++);
*dest='\0';
}
return dest;
}

那里错了??


[此贴子已经被作者于2007-10-21 12:47:12编辑过]

搜索更多相关主题的帖子: strcpy函数 char scr const dest 
2007-10-19 21:06
六道
Rank: 1
等 级:新手上路
帖 子:120
专家分:0
注 册:2007-9-28
收藏
得分:0 
from 怎么改变了??

★孤独的人是可耻的★
2007-10-19 22:03
六道
Rank: 1
等 级:新手上路
帖 子:120
专家分:0
注 册:2007-9-28
收藏
得分:0 

知道的朋友帮帮忙~
先谢谢~


★孤独的人是可耻的★
2007-10-20 22:03
六道
Rank: 1
等 级:新手上路
帖 子:120
专家分:0
注 册:2007-9-28
收藏
得分:0 
以下是引用Janlex在2007-10-20 22:54:32的发言:
char *from="123ASDASDASD";
char *to="asd";

改成
char from[20]="123ASDASDASD";
char to[20]="asd";

有何不同?是因红色部分要单独分配内存吗?

那我这样写:
#include<iostream.h>

char *strcpy(char *dest,const char *scr);
void main()
{
char *from="asdasdasd";
char *to;
if((to=new char[sizeof(from)+1])==NULL)
{
cout<<"not neough memory.";
return;
}
strcpy(to,from);
cout<<from<<endl
<<to<<endl;
delete(to);
}

char *strcpy(char *dest,const char *scr)
{
if(scr==NULL)
cout<<"原字符串为空."<<endl;
else
{
while(*scr!='\0')
*(dest++)=*(scr++);
*dest='\0';
}
return dest;
}
此程序可以运行出结果,但是就在运行处报错了~是否是因为蓝色部分我改为return;的原因吗?

再有就是蓝色改为exit(1);为何就出错说:'exit' : undeclared identifier??缺少头文件吗?可new函数不用头文件的啊.

[此贴子已经被作者于2007-10-21 12:48:42编辑过]


★孤独的人是可耻的★
2007-10-20 23:23
六道
Rank: 1
等 级:新手上路
帖 子:120
专家分:0
注 册:2007-9-28
收藏
得分:0 
以下是引用Janlex在2007-10-21 0:24:56的发言:
if((to=new char[strlen(from)+1])==NULL)

恩,谢谢,你指出的是对的~但问题好像不在这.
那如果分配不是数组的话,比如:分配一个整形变量的空间,定义大小时是这样if((to=new int (sizeof(int)))==NULL),还是和数组一样用[].


★孤独的人是可耻的★
2007-10-21 12:29
六道
Rank: 1
等 级:新手上路
帖 子:120
专家分:0
注 册:2007-9-28
收藏
得分:0 
以下是引用Janlex在2007-10-21 14:50:42的发言:
1, 只有字符串才用strcpy
2, new int()与new int[]完成是两个概念

可能是我没说清楚问题.
谢谢楼上的回答~


★孤独的人是可耻的★
2007-10-21 14:58
六道
Rank: 1
等 级:新手上路
帖 子:120
专家分:0
注 册:2007-9-28
收藏
得分:0 
以下是引用ACMer在2007-10-21 15:01:37的发言:
寒。。。。。。。

晕,包寒...........

我就想问下:动态分配内存给数组是这样:if((to=new char[arraysize])==NULL)
分配给其他的,比如给整形,字符变量动态分配内存空间,int a;if((a=new int )==NULL),int后面不能用[]放申请空间的大小单位了,那应该用(),还是别的,还是直接if((a=new int sizeof(a))==NULL)这样.

呵呵,应该表达清楚了吧~


★孤独的人是可耻的★
2007-10-21 15:25
快速回复:[求助]急......关于strcpy函数
数据加载中...
 
   



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

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