詳解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; }
總結
本篇文章就到這裡瞭,希望能夠給你帶來幫助,也希望您能夠多多關註WalkonNet的更多內容!