【C】C语言字符串处理函数

习惯上,C语言中的 字符串 是以null字符('\0')结尾的字符数组,编译器在所有字符串常量后面自动添加一个多余的null字符,但编程人员要保证字符串数组中生成的字符串你null字符结尾。空字符串不包含字符,表示为null字符的指针,不同于不指向任何字符的NULL指针。C89增补1增加了与普通字符串函数并行的宽字符串函数,差别在于宽字符串函数所带的参数类型为wchar_t*而不是char*,宽字符串函数名把普通字符串函数开头的字母str改成wcs,宽字符串以宽null字符终止,比较宽字符串时,比较wchar_t元素的整数值,宽字符串不进行解释,不会发生编码错误。

下面列举一些与字符串相关的函数,大多数在头文件string.h中声明,一些标准C语言转换函数是stdlib.h中提供的。

char* strcat(char *dest, const char *src);
char* strncat(char *dest, const char *src, size_t n);
函数strcat将字符串src的内容添加到字符串dest末尾,返回dest值,strncat函数从src内容中将最多n个字符添加到dest末尾。

int strcmp(const char *s1, const char *s2);
int strncmp(const char *s1, const char *s2, size_t n);
函数strcmp在词法上比较以null终止的字符串s1与以null终止的字符串s2的内容,返回一个int类型值,在s1小于s2时小于0,在s1等于s2是为0,在s1大于s2时大于0,函数strncmp与strcmp相似,只是至多比较以null终止的字符串s1的前n个字符与以null终止的字符串s2的前n个字符。

char* strcpy(char *dest, const char *src);
char* strncpy(char *dest, const char *src, size_t n);
函数strcpy将字符串src的内容复制到字符串dest,覆盖dest中原先的内容,返回dest,函数strncpy只把n个字符复制到dest。

size_t strlen(const char *s);
函数strlen返回s中终止null字符之前的字符数。

char* strchr(const char *s, int c);
char* strrchr(const char *s, int c);
函数strchr搜索字符串s中第一次出现的字符c,如果在字符串中找到了字符c,则返回指向第一个c的指针,函数strrchr与strchr相似,只是返回指向最后一个字符c的指针。

size_t strspn(const char *s, const char *set);
size_t strcspn(const char *s, const char *set);
char* strpbrk(const char *s, const char *set);
函数strspn搜索字符串s中第一个不包含在字符串set中的字符,跳过那些set中包含的字符,返回的值是s中从第一个字符起全部由set中字符组成的段的最大长度,函数strcspn与strspn相似,只是搜索字符串s中第一个在字符串set中的字符,跳过不在set中的字符,函数strpbrk与strcspn相似,只是返回指向找到的set中第一个字符的指针,而不是跳过的字符数。

char* strstr(const char *src, const char *sub);
char* strtok(char *str, const char *set);
函数strstr找到字符串src中第一次出现字符串sub的位置,并返回指向第一次出现的子串的开头的指针。strtok函数将字符串str分解为由字符串set中的字符分隔的记号。

int strcoll(const char *s1, const char *s2);
size_t strxfrm(char *dest, const char *src, size_t len);
strcoll与strxfrm函数提供特定区域设置的字符串排序功能。

另外,还有一些类型转换函数,例如strtod、strtof、strtold、strtol、strtoll、strtoul、strtoull、
atof、atoi、atol、atoll等。
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值