C 语言 - 字符串相关库函数用法 + 模拟实现
在 C 语言中,字符串是字符数组的一种特殊形式,以空字符'\0'结束。C 语言提供了一系列的库函数来处理字符串,这些函数在<string.h>头文件中定义。以下是一些常用的字符串相关库函数及其用法和模拟实现:
strlen()
:此函数返回给定字符串的长度。用法:
size_t strlen(const char *str);
模拟实现:
size_t my_strlen(const char *str) { const char *s = str; while (*s) ++s; return s - str; }
strcpy()
:此函数将源字符串复制到目标数组。用法:
char* strcpy(char* destination, const char* source);
模拟实现:
char* my_strcpy(char* destination, const char* source) { assert(destination != NULL && source != NULL); char *ret = destination; while ((*destination++ = *source++) != '\0'); return ret; }
strcat()
:此功能将源串附加到目标串后面。用法:
char * strcat (char *, const *) ;
模拟实现:
//模仿 strcat 函数 void my_strcat (char *,const *) { assert((src!=NULL)&&(dst!=NULL)); //断言源地址和目标地址都不为空 while(*dst!='\0') { //找到dst 的结束位置 dst++; } while((*dst++=*src++)!='\0'); //复制 }
strcmp()
:此函数比较两个字符串。用法:
int strcmp(const char *str1, const char *str2);
模拟实现:
int my_strcmp(const char *str1, const char *str2) { while (*str1 && (*str1 == *str2)) { str1++; str2++; } return *(unsigned char *) str1 - *(unsigned char *) str2; }
strstr()
:此函数在一个字符串中查找子串。用法:
char* strstr(const* haystack, const* needle);
模拟实现:
//模仿 strstr 函数 void my_strcat (char *,const *) { assert((src!=NULL)&&(dst!=NULL)); //断言源地址和目标地址都不为空 while(*dst!='\0') { //找到dst 的结束位置 dst++; } while((*dst++=*src++)!='\0'); //复制 }
以上就是 C 语言中常见的一些字符串相关的库函数及其模拟实现。这些库函数为我们提供了方便,但是理解其内部工作原理也同样重要,这样我们才能更好地使用它们,并在需要时自己编写类似的功能。
蓝易云-五网CN2服务器【点我购买】蓝易云采用KVM高性能架构,稳定可靠,安全无忧!蓝易云服务器真实CN2回国线路,不伪造,只做高质量海外服务器。
海外免备案云服务器链接:www.tsyvps.com
蓝易云香港五网 CN2 GIA/GT 精品网络服务器。拒绝绕路,拒绝不稳定。
评论