字符串copy推导演变
1 #include <stdio.h>
2 #include<string.h>
3 /*基本水平*/
4 void mycopy1(char *des,char * sou)
5 {
6 unsigned int i;
7 for ( i = 0; i < strlen(sou); i++)
8 {
9 des[i] = sou[i];
10 }
11 des[i] = '\0';//加上结束符
12 }
13
14 /*初级水平*/
15 void mycopy2(char *des, char * sou)
16 {
17 while (*sou != '\0')
18 {
19 *des++ = *sou++;
20 }
21 *des = '\0';//同样加上结束符
22 }
23
24 /*中级水平*/
25 void mycopy3(char *des, char * sou)
26 {
27 while( (*des++ =*sou++)!='\0')
28 {
29
30 }
31 //*des = '\0';//不再需要这句话
32 }
33 /*高级水平*/
34 void mycopy4(char *des, char * sou)
35 {
36 while (*des++ = *sou++)
37 {
38
39 }
40 //*des = '\0';//不再需要这句话
41 }
42 /*
43 注意,这里要求sou指针指向的是以'\0'结尾的字符串,如果都是字符数组,则不行,当然你也可以在
44 字符数组尾部加上'\0',让它成为一个判断标志
45 这个主要是锻炼思维,第四中情况,将在《c和指针》上看到应用,后续举例
46 */
47 int main(void)
48 {
49 char str[] = "abcdef";
50 char str1[10];
51
52 mycopy1(str1,str);
53 printf("str1=%s\n", str1);
54
55 mycopy2(str1, str);
56 printf("str1=%s\n", str1);
57
58 mycopy3(str1, str);
59 printf("str1=%s\n", str1);
60
61 mycopy4(str1, str);
62 printf("str1=%s\n", str1);
63 return 0;
64 }
欢迎加入作者的小圈子
扫描下方左边二维码加入QQ交流群,扫描下方右边二维码关注个人微信公众号并获取更多隐藏干货,QQ交流群:816747642 微信公众号:Crystal软件学堂
|
作者:Crystal软件学堂 bilibili视频教程地址:https://space.bilibili.com/5782182 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在转载文章页面给出原文连接。 如果你觉得文章对你有所帮助,烦请点个推荐,你的支持是我更文的动力。 文中若有错误,请您务必指出,感谢给予我建议并让我提高的你。 |

浙公网安备 33010602011771号