159_strrok使用初步

         从其他人那儿学到了这么一个函数,感觉还是有一定的用途。不过,进一步的学习发现这个函数具有一定的不安全性,使用起来还是得注意一下。看起来,在我的嵌入式应用中需要谨慎。

         函数测试代码:

#include "stdio.h"
#include "stdint.h"
#include "string.h"


char str_from_nxp[] = "From driverless autos to home automation and industrial IoT, NXP is the partner that prepares you for what’s next.";


int main(void)
{
    char *sub_str = NULL;
    char *p_str;
    char delim_str[] = " ";

    printf("raw string: %s\n", str_from_nxp);

    p_str = str_from_nxp;
    sub_str = strtok(p_str, delim_str);

    while (sub_str != NULL)
    {
        printf("%s\n", sub_str);
        sub_str = strtok(NULL, delim_str);
    }

    return 0;
}

         函数的第一个参数是原始的字符串,第二个参数是子字符串。如果迭代开始之后,第一个参数需要改成NULL。返回值是子字符串,也就是分割后的小单元。编译以及运行效果如下:

         上面的测试使用的分隔符为空格。

         需要注意的是,这个分割字符只能够是一个字符,否则的话分割会出现错误。一个错误的示范如下:

#include "stdio.h"
#include "stdint.h"
#include "string.h"

char str_from_nxp[] = "helloworld.";

int main(void)
{
    char *sub_str = NULL;
    char *p_str;
    char delim_str[] = "ll";

    printf("raw string: %s\n", str_from_nxp);  
    p_str = str_from_nxp;
    sub_str = strtok(p_str, delim_str);

    while (sub_str != NULL)
    {
        printf("%s\n", sub_str);
        sub_str = strtok(NULL, delim_str);
    }

    return 0;
}

         编译运行效果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值