c++基础之STL函数strtok以逗号和分号切割字符串为数字

前几天做头条笔试合并重复区间需要用到从带有逗号和分号的字符串中提取出数字

比如从字符串:  "1,10;32,45"中提取出数字1,10,32,45

需要用到STL 库函数strtok

使用如下:

需要注意的几点:

1、sscanf用来把指针指向的内容存到数组中

2、16行如果写成:char* s=str.c_str();不加char*强制转换的话会报错:

因为此时的str为字符串常量,在内存中为const char*,所以要强制转换为char *

可以通过尝试修改str内容来验证str为常量字符串

而直接初始化的string是可以修改的

3、strtok根据分号切割字符串为数字的核心代码为以下几行:

strtok(NULL,split1)返回上一次切割后的字符

比如”1,10;32,45“

那么char* p = strtok(s,split1)

p = strtok(NULL,split1)后p指向"32,45"

博客上有人说之所以是null是因为strtok内部用'\0'取代了分隔符

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值