详解C语言对字符串处理函数的实现方法
时间:2022-04-23 08:46:01|栏目:C代码|点击: 次
strlen:
1.计数器版本:
#include<stdio.h> #include<string.h> #include<assert.h> int my_strlen(const char *str) { int count =0; assert(str!=NULL); while(*str!='\0') { count++; str++; } return count; }
2.递归的版本
int my_strlen(const char *str) { assert(str != NULL); if (*str == '\0') return 0; return (my_strlen(++str)+1); }
3.指针-指针版本
int my_strlen(const char *str) { char *end = str; assert(str!=NULL); assert(end!=NULL); while (*end != '\0') { end++; } return end - str; }
strcat:
#include<stdio.h> #include<string.h> #include<assert.h> char *my_strcat(char *dest,char *str) { char *ret=dest;//存dest的首地址 assert(dest&&str); while(*dest) { dest++; } while(*dest++=*str++); dest=ret; return dest; }
strcmp:
int my_strcmp(char *str1, char *str2) { assert(str1&&str2); while(*str1==*str2) { if(str1=='\0'&&str2=='\0') return 0; str1++; str2++; } if(*str1>*str2) return 1; return -1; //或return str1-str2; }