C split函數

前兩天寫ministored的時候,發現需要用到字符串的分割,花了點時間寫了一個,後來發現不需要了,放在這個,留着以後備用。

 


int count(char * str,const char * delim){
    int num = 0;
    while( NULL != ( str = strstr(str,delim) ) ){
        str ++;   
        num ++;
    }           
    return num;
}

char ** split(char * str, const char * del){
    int num = count(str,del);
    char ** arr = ( char ** ) malloc( sizeof(char*) * ( num +1));
    char ** result = arr;
   
    char * s = strtok(str,del);
   
    while( s != NULL){
        *arr++ = s;
        s = strtok(NULL,del);

    }   
    return result;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章