strtok()函数

一、strtok()函数
头文件:#include”string.h>
函数原型:char *strtok(char *str, const char *flag);
函数功能:切割成若干个字符串
函数说明:第一次调用函数str为需要被切割字符串的首地址;在之后调用则传入NULL,否则每次都将会从字符串的开头进行切割。flag参数为分隔符,即需要在什么地方进行切割。函数的返回值为本次切割后得到的字符或字符串的地址。当到达str字符串末尾时函数返回NULL

请看下面简单代码:

#include<string.h>
#include<iostream>
using namespace std;

#define STRLEN 128

void CutCmd(char *cmd, char **argv)
{
    int count = 0;

    char *p = strtok(cmd," ");

    while(p != NULL)
    {
        argv[count++] = p;

        if(count == STRLEN)
        {
            return;
        }

        p = strtok(NULL," ");
    }
}

int main()
{
    //指针数组,用以存放切割后的字符串
    char *argv[STRLEN] = {0};

    char cmd[] = {"ab c  def g"};

    CutCmd(cmd,argv);

    //输出
    int i = 0;
    while(argv[i] != NULL)
    {
        cout<<argv[i++]<<endl;
    }

    return 0;
}

运行结果:
这里写图片描述
函数底层:strtok函数在切割字符串时遇到分隔符后,就会把分隔符的第一个字符替换为’\0’并返回切割后字符串的首地址。

菜鸟一枚,若有错误,望各位大佬高抬贵手哈哈哈

猜你喜欢

转载自blog.csdn.net/judgejames/article/details/82690908