快捷搜索:  汽车  科技

c语言中对字符串处理的函数(C语言字符串相关函数实现)

c语言中对字符串处理的函数(C语言字符串相关函数实现)char *my_strcat(char *dest const char *str) { char *temp = dest; assert(str); assert(dest); while(*temp) { temp ; } while(*temp = *str ) { ; } return dest; } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 实现函数my_strcmp() 【功能描述】 :比较两个字符串大小(比较acsll码值),大于返回大于零的数,小于零返回小于零的数,否则返回零。char *my_strncpy(char *dest const char *str size_t count) { int i = 0; char *temp = dest; assert(str); assert(de

前言

【需求分析 】:C语言中关于字符串的函数有很多,但往往需要的是靠自己去理解,去实现。

  • 实现函数my_strlen()

【功能描述】 :返回字符串的长度


方法一 :

int my_strlen(const char *str) { int count = 0; assert(str); while(*str) { count ; str ; } return count; } 1 2 3 4 5 6 7 8 9 10 11

方法二 :

int my_strlen(const char *str) { assert(str); if(*str == '\0'); { return 0; } else { return 1 my_strlen(str 1); } } 1 2 3 4 5 6 7 8 9 10 11 12

方法三 :

int my_strlen(const char *str) { char *p = str; assert(str); while(*p) { p ; } return p-str; } 1 2 3 4 5 6 7 8 9 10


  • 实现函数my_strcpy()

【功能描述】 :第一个字符串被第二个字符串所覆盖


char *my_strcpy(char *dest const char *str) { char *temp = dest; assert(str); assert(dest); while(*temp = *str ) { ; } return dest; } 1 2 3 4 5 6 7 8 9 10 11


  • 实现函数my_strncpy()

【功能描述】 :有个数限制字符串复制


char *my_strncpy(char *dest const char *str size_t count) { int i = 0; char *temp = dest; assert(str); assert(dest); while(count--) { if(*str == '\0'); { return NULL; } *temp = *str ; } if(*temp != '\0') { *temp = '\0'; } return dest; } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20


  • 实现函数my_strcat()

【功能描述】 :将第二个字符串链接在第一个字符串后面


char *my_strcat(char *dest const char *str) { char *temp = dest; assert(str); assert(dest); while(*temp) { temp ; } while(*temp = *str ) { ; } return dest; } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15


  • 实现函数my_strcmp()

【功能描述】 :比较两个字符串大小(比较acsll码值),大于返回大于零的数,小于零返回小于零的数,否则返回零。


int my_strcmp(const char *str1 const char *str2) { assert(str1); assert(str2); while(*str1 == *str2) { if(*str1 == '\0') { return 0; } str1 ; str2 ; } return srt1 - str2; } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16


  • 实现函数my_strstr()

【功能描述】 :看第一个串是否包含第二个串,不包含返回NULL,否则返回 串所在第一个位置


char *my_strstr(const char *str1 const char *str2) { assert(str1); assert(str2); char *s1 = (char *)srt1; char *s2 = (char *)str2; char *cur = NULL; if(*str2 == '\0') return (char *)str1; while(*s1) { cur = s1; s2 = str2; while(*s1 && *s2 && (*s1 == *s2)) { s1 ; s2 ; } if(*s2 == '\0') return s1; s1 ; } } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25


  • 实现函数my_memcpy()

【功能描述】 :将第二个参数按字节复制到第一个字符串(两参数分别在两块独立内存)


void *my-memcpy(void *dest const void *str size_t count) { void * temp = dest; assert(dest); assert(str); //从前到后按字节复制 while(count--) { *(char *)temp = *(char *)str; temp = (char *)temp 1; str = (char *)str 1; } return dest; } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16


  • 实现函数my_memmove()

【功能描述】 :将第二个参数按字节复制到第一个字符串(内存块可重叠)(字符 数组 整数……都可以复制)


void * memmove(void *dest const void *str size_t count) { void * temp = dest; assert(dest); assert(str); if(temp <= str||str >= dest count) { while(count--) { *(char *)temp = *(char *)str; temp = (char *)temp 1; str = (char *)str 1; } } else { temp = (char *)temp count - 1; str = (char *)str count - 1; while(count--) { *(char *)temp = *(char *)str; temp = (char *)temp - 1; str = (cahr *)str - 1; } } return dest; } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29


结语

不负一世韶华,成就七彩人生

c语言中对字符串处理的函数(C语言字符串相关函数实现)(1)

猜您喜欢: