美文网首页
strtok()字符串分割函数

strtok()字符串分割函数

作者: 云中的Jason | 来源:发表于2018-12-09 19:06 被阅读0次

    参考博客:strtok(), strtok_s() 字符串分割函数

    函数原型

     //strtok()函数原型
     /*_Check_return_ _CRT_INSECURE_DEPRECATE(strtok_s) _CRTIMP 
                          char *  __cdecl strtok(_Inout_opt_z_ char * _Str, _In_z_ const char * _Delim);*/
    

    用途:

    当strtok()在参数_Str的字符串中发现参数_Delim中包涵的分割字符时,则会将该字符改为\0 字符。
    在第一次调用时,strtok()必需给予参数_Str字符串,往后的调用则将参数_Str设置成NULL。每次调用成功则返回指向被分割出片段的指针。
    需要注意的是,使用该函数进行字符串分割时,会破坏被分解字符串的完整,调用前和调用后的s已经不一样了。
    第一次分割之后,原字符串str是分割完成之后的第一个字符串,剩余的字符串存储在一个静态变量中。

    示例:

    #include <iostream>
    #include <string>
    using namespace std;
    int main()
    {
        char *p;
        char str[] = "- This, is a sample string, ok.";
        p = strtok(str, " ,.-"); // 注意: " ,.-"中的第一个字符是空格;
        while (p != NULL)
        {
            cout << p << endl;
            p = strtok(NULL, " ,.-"); // 后续调用,第一个参数必须是NULL;
        }
        system("pause");
        return 0;
    }
    // 输出
    // This
    // is
    // a
    // sample
    // string
    // ok
    

    相关文章

      网友评论

          本文标题:strtok()字符串分割函数

          本文链接:https://www.haomeiwen.com/subject/geykhqtx.html