計算機二級C++函數(shù):C/C++中的Split函數(shù)

字號:

C/C++中的Split函數(shù)是strtok()其函數(shù)原型如下:
    char * strtok (char * str, const char * delimiters);
    函數(shù)說明
    strtok()用來將字符串分割成一個個片段。參數(shù)str指向欲分割的字符串,參數(shù)delimiters則為分割字符串,當strtok()在參數(shù)str的字符串中發(fā)現(xiàn)到參數(shù)delimiters的分割字符時則會將該字符改為'\0'字符??荚?大提示在第一次調(diào)用時,strtok()必需給予參數(shù)str字符串,往后的調(diào)用則將參數(shù)str設置成NULL。每次調(diào)用成功則返回下一個分割后的字符串指針。
    返回值
    返回下一個分割后的字符串指針,如果已無從分割則返回NULL。
    示例
    /* strtok example */
    #include
    #include
    int main ()
    {
    char str[] ="a,b,c,d*e";
    const char * split = ",";
    char * p;
    p = strtok (str,split);
    while(p!=NULL) {
    printf ("%s\n",p);
    p = strtok(NULL,split);
    }
    getchar();
    return 0;
    }
    本例中,實現(xiàn)對字符串'a,b,c,d*e"用逗號(,)來作界定符對字符串進行分割。
    輸出結(jié)果將如下所示:
    a
    b
    c
    d*e
    因為delimiters支持多個分割符, 我們將本示例中的語句行
    const char * split = ",";
    改成 const char * split = ",*"; //用逗號(,)和星號(*)對字符串進行分割
    這樣輸出結(jié)果將如下所示:
    a
    b
    c
    d
    e