LinuxC学习之字符和字符串操作


本文归纳了C语言中可对字符与字符串进行处理处理的一些常用库函数,可供学习时参考查阅。


一、处理单个字符的库函数

头文件:cpype.h

*int  isalnum(int c) :

检查参数c是不是一个字母或数字,是则返回1,否则返 回0;参数c是一个字符变量,但在C语言中,字 符变量等同于其对应的ASCII码值,故参数也可以是一个ASCII码值的整型数值,下同

*  int  isalpha(int c):

若参数c是一个英文字母则返回真值,否则返回假;

*  int  isgraph(int c):

若参数c是一个可打印字符则返回一个真值,否则返回假;

*  int  islower(int c) 与 int  isupper(int c):

测试参数c的大小写;

*  int  isxdigit(int c):

若参数c是一个数字则返回一个真值,否则返回假;

*  int  ispunct(int c):

若参数c是标点符号或特殊字符则返回一个真值,否则返 回假;

 

二、处理字符串的库函数

 头文件:stdlib.h

* double atof(char* nptr):

字符串转换成浮点型整数;

*  int  atoi(char* nptr):

字符串转换成整型数;

*  int  atol(char* nptr):

字符串转换成长整型数;

*  char  *ecvt(double numer, int ndigits, int *decpt, int *sign):

@number:需要对浮点数number进行转换;

@ndigits:在浮点数中从左向右取的位数;

@decpt:一个整型数的指针,显示浮点数中小数点在第几 位;

@sign:一个整型数的指针,带便数值正负,正则返回0, 否则返回1;

头文件:string.h

* int  bcmp(const void *s1, const void *s2, int n)

字符串的比较函数,n为需要比较的两个字符串的前n个 字符,相投则返回真,否则返回假;

*  int  mencmp(const void *s1, const void *s2, size_n n):

返回字符串中第一个不相同的字符的差值(s1-s2);

*  void  bcopy( const void *src, void *dest, int n):

@src:需要复制字符的字符串;

@dest:复制到的目标字符串;

@n:需要复制的字符数目; 

复制方式为覆盖式复制;

* void *menccopy( void *dest, const void *src, int c, size_t n):

@dest:复制到的目标字符串;

@src:需要复制字符的字符串;

@c:在dest中赋值为c的字符,若查找到这个字符,则返   回下一个字符的指针;

*  char  *strcpy( char *dest, const void *src)

@dest:复制到的目标字符串;

@src:需要复制字符的字符串;

函数返回字符串dest的指针,使用时必须保证dest有足够 的空间来存储src字符串,否则会发生溢出错误。

*  char  *strncpy( char*dest, const char*src, int c, size_t n)

@dest:复制到的目标字符串;

@src:需要复制字符的字符串;

@n:在src中需要复制的字符个数;

函数返回dest字符串的头指针。

*  void  bzero( void *s,  int n)

将字符串s的前n个字符赋值为NULL,其后字符不变,即 函数改变了字符串s的值。

*  void  *menset( void *s, int c, size_t n )

将传入的字符串s的前n个字符都填充为字符c;

*  char  *index( const char *s, int c )

在字符串s中找出字符c出现的第一个位置,然后将该字 符地址返回。(同rindex)

*  char  *rindex( const char *s,int c )

用来找出参数s字符串中最后一个出现的参数c 地址,然 后将该字符出现的地址返回。字符串结束字符(NULL) 也 视为字符串一部分。如果找到指定的字符则返回该字符所 在的地址,否则返回0。

*  void  *menchr( void *s, int c, size_t n )

在字符串s的前n个字符中查找字符c,返回自个字符的指 针地址。

*  char  *strchr( const char *s,int c )

在字符串s中找出字符c出现的第一个位置,然后将该字 符地址返回,若无字符c则返回0;

*  char  *strrchr( const char *s,int c )

在字符串s中找出字符c出现的最后一个位置,然后将该 字符地址返回,若无字符c则返回0;

(index VS strchr:也ndex系列函数把字符串中最后的结 束字 符也当是字符串的内容处理也就是你可以这样:
index(str,'\0')和rindex(str,'\0')而strchr系列函数 就不可以了)

* char *strcat( char*dest, const char*src )

函数将src的内容添加到dest后面,并返回指针dest。

*  char *strtok( char *s,const char *delim )

分解字符串为一组字符串。s为要分解的字符串,delim为 隔符字符串。首次调用时,s指向要分解的字符串,之 后 再次调用要把s设成NULL。strtok在s中查找包含在delim 中的字符并用NULL('/0')来替换,直到找遍整个字符 串。

返回值:从s开头开始的一个个被分割的串。当没有被分 割的串时则返回NULL。所有delim中包含的字符都会被 滤 掉,并将被滤掉的地方设为一处分割的节点。

鉴于strtok函数叫难理解,看参考如下示例:

int i = 0;

char* p;

char a[30] = "dsggsdfsdadsdadsdsda";

char s[] = "a";

printf("a = %s\n",a);

p = strtok(a,s);

printf("p = %s\n",p);

while(i<4)

{

i++;

p = strtok(NULL,s);

printf("i=%d;  p = %s\n",i,p);

getchar();

}

结果:

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值