C语言中有哪些字符处理函数你知道吗

目录

  • 1、字符串常用操作:连接、拷贝、比较与获取长度
  • 2、mem_类的函数(查找、比较、拷贝与赋值)
  • 3、寻找字符串子串
  • 4、字符串转数字
  • 5、数字转字符串
  • 6、分隔符分割字符串
  • 7、大小写字母判别与转换
  • 总结

1、字符串常用操作:连接、拷贝、比较 与 获取长度
include /*将字符串 str2 连接到 str1 的末端,并返回指针 str1*/char *strcat( char *str1, const char *str2 )/*将字符串 str2 中至多count个字符连接到字符串 str1 中,并追加空值结束符。返回处理完成的字符串。*/char *strncat( char *str1, const char *str2, size_t count ); /*返回一个指向 str 中 ch 首次出现的位置指针,当没有在 str 中找到 ch 则返回NULL。*/char *strchr( const char *str, int ch )/*函数返回一个指针,它指向字符 ch 在字符串 str 末次出现的位置,如果匹配失败,返回 NULL。*/char *strrchr( const char *str, int ch ); /*比较字符串 str1 与 str2。如果两个字符串相等则返回 0;该函数的将两个字符串按位进行比较(字符的Ascall值),当遇到不相等位时返回结果。*/int strcmp( const char *str1, const char *str2 )/*比较字符串 str1 和 str2 中至多 count 个字符。*/int strncmp( const char *str1, const char *str2, size_t count ); /*将字符串 src 中所有字符赋值到字符串 dst,包括空值结束符。返回值为指针dst。*/char *strcpy( char *dst, const char *src)/*将字符串 src 中至多 count 个字符复制到字符串 dst 中。如果字符串 src 的长度小于count,其余部分用 '\0' 填补。返回处理完成的字符串。*/char *strncpy( char *dst, const char *src, size_t count ); /*函数返回字符串 str 的长度( 即空值结束符之前字符数目)。*/size_t strlen( char *str )


2、mem_类的函数(查找、比较、拷贝 与 赋值) mem_类的函数与str_的函数使用起来的最大区别在于,mem_类函数不限制数据类型,直接在内存上进行操作,使用起来更强大与灵活。
#include /*函数在 buffer 指向的数组的 count 个字符的字符串里查找ch 首次出现的位置。返回一个指针,指向 ch 在字符串中首次出现的位置, 如果ch 没有在字符串中找到,返回 NULL。*/void *memchr( const void *buffer, int ch, size_t count ); /*函数比较 buffer1 和 buffer2 的前 count 个字符。*/int memcmp( const void *buffer1, const void *buffer2, size_t count ); /*函数从from中复制count 个字符到to中,并返回to指针。 如果 src和 dst 指向的内存空间有重叠,函数行为不确定。*/void *memcpy( void *dst, const void *src, size_t count ); /*函数拷贝 ch 到 buffer 从头开始的 count 个字符里, 并返回buffer指针。memset() 可以应用在将一段内存初始化为某个值。*/void *memset( void *buffer, int ch, size_t count );


3、寻找字符串子串
/*函数返回一个指针,它指向字符串 str2 首次出现于字符串 str1 中的位置,如果没有找到,返回 NULL。*/char *strstr( const char *str1, const char *str2 )

示例
#include #include int main(void){ char strA[20] = "hello world!", strB[20] = "world"; char *tmp = strstr(strA, strB); // (world!) printf("(%s)\n", tmp); return 0; }


4、字符串转数字
#include /*将字符串 str 表示浮点数(带符号)转换为 double 类型,end 指针如果不为空则用于接收 str 去掉浮点数字符串后剩下的字符串。*/double strtod( const char *str, char **end )/*字符串转长整形,base代表采用的进制如果返回值无法用长整型表示,函数则返回LONG_MAX或LONG_MIN. 错误发生时,返回零。*/long strtol( const char *str, char **end, int base )/*字符串转无符号长整形数*/unsigned long strtoul( const char *str, char **end, int base )/*将字符串str转换成一个双精度数值并返回结果。 参数str 必须以有效数字开头允许以“E”或“e”除外的任意非数字字符结尾。*/double atof( const char *str )/*将字符串str转换成一个整数并返回结果。参数str 以数字开头,当函数从str 中读到非数字字符则结束转换并将结果返回。*/double atoi( const char *str )/*将字符串转换成长整型数并返回结果。函数会扫描参数str字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时才结束转换,并将结果返回。*/double atol( const char *str )


5、数字转字符串
#include int main(void){ int num = 199; char str[20] = ""; sprintf(str, "%d", num); // (199) printf("(%s)\n", str); return 0; }

示例
#include int main(void){ int num = 199; char str[20] = ""; sprintf(str, "%d", num); // (199) printf("(%s)\n", str); return 0; }


6、分隔符分割字符串
char *strtok( char *str1, const char *str2 )

示例
#include #include int main(void){ char str[20] = "ABC|EDF|GH"; char tmp[] = "|", *res = NULL; res = strtok(str, tmp); // (ABC) (EDF) (GH) while(res != NULL) {printf("(%s) ", res); res = strtok(NULL, tmp); } return 0; }


7、大小写字母判别与转换
#include // 是否是数字字符int isdigit( int ch )// 是否是字母字符int isalpha( int ch )// 是否是小写字母int islower( int ch )// 转小写字母int tolower( int ch )// 是否是大写字母int isupper( int ch ); // 转大写字母int toupper( int ch )


总结 【C语言中有哪些字符处理函数你知道吗】本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!

    推荐阅读