以下是分别是strlen,strcpy,strcat,strcmp的代码实现,其中strcpy和strcat为什么要设一个新的指针指向他们的值我想了好一段时间没理解,后面发现当时真是脑子短路了:他们俩的返回值是原指针的地址,如果用原指针直接进行操作,最后返回的地址值会改变。
1 #include <stdio.h>
2 size_t str_len(const char *str)
3 {
4 const char *cmp=str;
5 while(*cmp)cmp++;
6 return cmp-str;
7 }
2 char *str_cpy(char *dest,const char *src)
3 {
4 char *cmp=dest;
5 while(*cmp++=*src++)
6 {}
7 return dest;
8 }
2 char *str_cat(char *dest,const char *src)
3 {
4 char *cmp=dest;
5 while(*cmp)cmp++;
6 while(*cmp++=*src++)
7 {}
8 return dest;
9 }
2 int str_cmp(const char *dest,const char *src)
3 {
4 const char *cmp=dest;
5 while(*cmp++==*src++ && *cmp !='\0')
6 {
7 }
8 if(*cmp>*src)
9 {
10 printf("%c %c",*cmp,*src);
11 return 1;
12 }
13 else if(*dest<*src)
14 {
15 return -1;
16 }
17 return 0;
18 }