登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

秒大刀 博客

好好学习 天天向上

 
 
 

日志

 
 
 
 

My strcpy()  

2006-03-28 00:19:47|  分类: C/C++ |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

//问题描述:  自己编程实现类似标准库中的strcpy函数
//备注:     
//作者:      杨明哲
//完成日期:  2005-03-25
//BUG报告;  dearymz@163.com


#include <iostream>
#include <cstdlib>
using namespace std;

namespace ymz//名字空间的使用,防止和标准库的函数冲突
{
 //字符串拷贝函数
 char* strcpy(char *strDestination, const char *strSource)
 {
  //对空指针的处理
  if(strDestination == NULL || strSource == NULL)
   return NULL;
  //防止自赋值
  if(strDestination == strSource)
   return strDestination;

  //核心逻辑
  for(unsigned int i = 0; ;i++)
  {
   char c = strSource[i];
   strDestination[i] = c;
   if(c == '\0')
    break;
  }
  return strDestination;
 }
}

const int bufSize = 64;
//测试函数
void main()
{
 char *source = new char[bufSize + 1];
 char destination[bufSize + 1];
 cout<<"请输入源字符串(以回车结束):"<<endl;
 cin.getline(source, bufSize);

 //开始进行字符串的拷贝处理
 ymz::strcpy(destination, source);

 //显示处理结果
 cout << "Source:\t\t" << source<<endl;
 cout << "Destination:\t" << destination <<endl;

 //释放内存,防止内存泄露
 delete []source;//请注意这里不要写成 delete source.(为什么?)

 system("PAUSE");//利用系统提供的任意键退出功能。(这个函数可以用来调用DOS的系统功能)
}

  评论这张
 
阅读(808)| 评论(0)

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018