[CString][几个不常用但是很有用的函数总结下]1

本文介绍了C语言中常用的字符串处理库函数,如strtok(), atoi(), strchr(), 和sscanf()等,通过示例代码展示了如何使用这些函数进行字符串的分割、转换及查找等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

字符串的题目 用库函数往往能大大简化代码量
介绍几个常用的C的字符串处理库函数

strtok()

原型

char *strtok(char s[], const char *delim);

功能

分解字符串为一组字符串。s为要分解的字符串,delim为分隔符字符串。

  • 例如:strtok("abc,def,ghi",","),最后可以分割成为abc def ghi.尤其在点分十进制的IP中提取应用较多。
    • 注意delim里面的不能看成一个整体,
    • 比如 s='bba',delim='ab' 最后结果为NULL

奉劝最好只有一个字符做参数 ,中间过程不改变参数。否则可读性很差;

说明

  • strtok()用来将字符串分割成一个个片段。
  • 参数s指向欲分割的字符串。
  • 参数delim则为分割字符串中包含的所有字符。
  • strtok()在参数s的字符串中发现参数delim中包含的分割字符时,则会将该字符改为\0字符。
  • 在第一次调用时,strtok()必需给予参数s字符串,往后的调用则将参数s设置成NULL。每次调用成功则返回指向被分割出片段的指针。

示例代码

#include<stdio.h>  
    int main(void)  
 {  
    charinput[16]="abc,d";  
       char*p;  
     p=strtok(input,",");  
     if(p)  printf("%s\n",p);  
     p=strtok(NULL,",");  
     if(p) printf("%s\n",p);  
     return 0;  
}  

atoi()

功能

把字符串转换成整型数。ASCII to integer 的缩写。

说明

  • 参数nptr字符串,如果第一个非空格字符存在,是数字或者正负号则开始做类型转换
  • 之后检测到非数字(包括结束符\0),字符时停止转换,返回整型数。否则,返回零。

还有 转换为浮点数的atof(),其余的strtod() strtold() strtol()

strchr()

函数原型

char *strchr(const char* _Str,int _Val)
char *strchr(char* _Str,int _Ch)

说明

  • 查找字符串s中首次出现字符c的位置
  • 返回首次出现c的位置的指针,返回的地址是字符串在内存中随机分配的地址再加上你所搜索的字符在字符串位置,如果s中不存在c则返回NULL。

sscanf()

函数原型

 int sscanf(const char *buffer,const char *format,[argument ]...);
  • buffer: 存储的数据
  • format: 格式控制字符串
  • argument: 选择性设定字符串

    sscanf会从buffer里读进数据,依照format的格式将数据写入到argument里。

    支持正则表达式

用法

  • 常见用法。

    charbuf[512];
    
    sscanf("123456","%s",buf);//此处buf是数组名,它的意思是将123456以%s的形式存入buf中!
    
    printf("%s\n",buf);
    


  • 带正则表达式用法

    给定一个字符串iios/12DDWDFF@122,获取 / 和 @ 之间的字符串

    sscanf("iios/12DDWDFF@122","%*[^/]/%[^@]",buf);
    
    printf("%s\n",buf);
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值