博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2.30模型字符串拷贝
阅读量:4495 次
发布时间:2019-06-08

本文共 1492 字,大约阅读时间需要 4 分钟。

【注:本程序验证是使用vs2013版】

#include 
#include
#include
#pragma warning(disable:4996)/*字符串拷贝函数,逐渐接近计算机操纵的方式来循序渐进的*/void my_strcpy(char *dest, char *src){ int i; for (i = 0; *(src + i) != '\0'; i++){ *(dest + i) = *(src + i); } *(dest + i) = 0;}void my_strcpy2(char *dest, char *src){ while (*src != 0){ *dest = *src; dest++; src++; } *dest = 0;}void my_strcpy3(char *dest, char *src){ while (*src != 0){ *dest++ = *src++; //先用了* 再加 (跟i++ ++i类似) } *dest = 0;}/*推荐方式*/int my_strcpy4(char *dest, char *src){ char *to = dest;//这里是否需要定义成全局变量?或者静态变量?不清楚 char *from = src; if (to == NULL || from == NULL){ return -1; } while (*to++ = *from++){
//这里实际包含三部 *desr = *src、 dest++,src++、 判断*from是否为0,为0跳出循环 NULL; } return 0;}int main(void){ char str[] = "abcde"; char buf[50]; int ret = 0; my_strcpy(buf, str);//方式一 printf("buf1 = %s\n", buf);    my_strcpy2(buf, str);//方式二 printf("buf2 = %s\n", buf);    my_strcpy3(buf, str);//方式三 printf("buf3 = %s\n", buf);   /* 这里是推荐的字符串拷贝方法,注意: 1.判断形参指针是否为空(有返回值) 2.最好不要直接使用形参,内部定义一个变量(通过辅助变量将形参接过来) */ ret = my_strcpy4(buf, str);//推荐方式 if (ret != 0) { printf("my_strcpy4 err:%d", ret); return; } printf("buf4 = %s\n", buf);    printf("\n"); system("pause"); return 0;}

 

转载于:https://www.cnblogs.com/wlstm/p/11100602.html

你可能感兴趣的文章
设计模式:单例和多例
查看>>
Myslq 之修改数据库
查看>>
maven工程转为web工程时没有add web project capabilities选项的解决办法
查看>>
[BZOJ1192][HNOI2006]鬼谷子的钱袋
查看>>
正则表达式之 数据验证 与 文本替换
查看>>
CLR via C#:CLR的执行模型
查看>>
JS获取服务器时间
查看>>
如何对数据排序和拆分文件
查看>>
数据解析01-15
查看>>
linux 安装mysql数据库——yum安装法
查看>>
Several ports (8005, 80, 8009) required by Tomcat v6.0 Server at localhost are already in use
查看>>
事件监听器
查看>>
设计模式之单例设计模式
查看>>
异常的基本概念
查看>>
vue 在发送axios请求时数据渲染问题
查看>>
动态链接库dll
查看>>
2018 Multi-University Training Contest 3 - HDU Contest
查看>>
组合数取模(转载)
查看>>
9.2NOIP模拟题
查看>>
整合SpringDataJpa
查看>>