strtok_r测试代码

在GCC 3.2.3和Linux 2.6.9-55.EL环境下,通过一个测试代码展示了strtok_r函数的用法。代码中,strtok_r用于分割含有多个分隔符(如';'和'1')的字符串,并能正确处理连续分隔符的情况。测试结果显示,strtok_r允许分隔符参数变化,且不会将连续分隔符视为有效分隔结果。

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

gcc version 3.2.3,Linux tmp222 2.6.9-55.EL上的测试代码

 

1,

#include <iostream>
#include <string.h>

int main()
{
        char buf[] = ";132;312;213;;;aa";
        std::cout<<buf<<std::endl;
        char* test;
        char* p = strtok_r(buf, ";", &test);
        while(p)
        {
                std::cout<<p<<std::endl;
                p = strtok_r(0, ";1", &test);
        }
}

输出:

;132;312;213;;;aa
132
3
2
2
3
aa

 

结论:

1)每次strtok_r调用的参数sep可以各不相同;

2)sep包含多个字符而非单个字符时,表示其中任一个字符都是分隔标识;

3)如果字串中有连续多个分隔符,strtok_r会跳过这些分隔符,而不是返回空串;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值