#include <stdio.h>
#include<string.h>
/*基本水平*/
void mycopy1(char *des,char * sou)
{
unsigned int i;
for ( i = ; i < strlen(sou); i++)
{
des[i] = sou[i];
}
des[i] = '\0';//加上结束符
} /*初级水平*/
void mycopy2(char *des, char * sou)
{
while (*sou != '\0')
{
*des++ = *sou++;
}
*des = '\0';//同样加上结束符
} /*中级水平*/
void mycopy3(char *des, char * sou)
{
while( (*des++ =*sou++)!='\0')
{ }
//*des = '\0';//不再需要这句话
}
/*高级水平*/
void mycopy4(char *des, char * sou)
{
while (*des++ = *sou++)
{ }
//*des = '\0';//不再需要这句话
}
/*
注意,这里要求sou指针指向的是以'\0'结尾的字符串,如果都是字符数组,则不行,当然你也可以在
字符数组尾部加上'\0',让它成为一个判断标志
这个主要是锻炼思维,第四中情况,将在《c和指针》上看到应用,后续举例
*/
int main(void)
{
char str[] = "abcdef";
char str1[]; mycopy1(str1,str);
printf("str1=%s\n", str1); mycopy2(str1, str);
printf("str1=%s\n", str1); mycopy3(str1, str);
printf("str1=%s\n", str1); mycopy4(str1, str);
printf("str1=%s\n", str1);
return ;
}

最新文章

  1. HTML5学习总结——canvas绘制象棋(canvas绘图)
  2. 【原】iOS学习之tableView的常见BUG
  3. CocoaPods第三方库管理 iOS
  4. 首师大附中互测题:50229234海岛帝国:独立之战【C002】
  5. mybatis-缓存1
  6. python获取命令行变量
  7. virtual box使用
  8. jQuery.bind() 函数详解
  9. 在VS中使用TinyFox调试OWIN应用(转)
  10. 浅谈ERP系统实施后如何完善企业内部控制制度建设
  11. 微软Hololens学院教程- Holograms 100: Getting Started with Unity【微软教程已经更新,本文是老版本】
  12. web开发的性能准则(减少页面加载时间方面)
  13. 数据绑定技术一:GridView控件
  14. 【java设计模式】【结构模式Structural Pattern】合成模式Composite Pattern
  15. 使用Vue和thrift建立前后端交互的demo
  16. Spark:将RDD[List[String,List[Person]]]中的List[Person]通过spark api保存为hdfs文件时一直出现not serializable task,没办法找到&quot;spark自定义Kryo序列化输入输出API&quot;
  17. NOIP 2014
  18. Stackoverflow 最受关注的 10 个 Java 问题
  19. django中 自定义User报错 已经注册的错误
  20. 最全的MonkeyRunner自动化测试从入门到精通(7)

热门文章

  1. eclipse Failed to load the JNIshared library
  2. iOS微信支付集成
  3. 深入了解MyBatis参数
  4. jquery checkbox选框操作
  5. &#39;&lt;&gt;&#39; operator is not allowed for source level below 1.7
  6. mybatis&amp;Hibernate区别
  7. HDUOJ-----1166敌兵布阵
  8. 基于HTTP在互联网传输敏感数据的消息摘要、签名与加密方案
  9. PMP备考经验分享
  10. 基于SpringCloud的微服务实践