C中的一个字符串分割函数

    技术2022-05-20  53

    仿照QT中的字符串分割函数,用C写了个分割函数,记录一下,避免以后忘记了。

    void SplitStr ( char* str, char* destStr, char c, int num ) str为要分割的字符串,destStr存储分割好的字符串,c为分割字符串的符号(如“,” “;”等),num为要取出第几位的字符串,例如:str = 0,1,2,3 SplitStr(str,destStr,',',0)就得到destStr = “0”。

     

    void SplitStr ( char* str, char* destStr, char c, int num )

    {

        int strNum = 0;

        int iLen = 0; 

        int iCnt = 0;

        int startPos = 0;

        if( ( str == NULL ) || ( destStr == NULL ) ){

            return;

        }

        iLen = strlen( str );

        for( iCnt=0;iCnt<=iLen;iCnt++ ){

            if( ( str[iCnt] == c ) || ( iCnt == iLen ) ){

                if( strNum == num ){

                    memcpy( destStr, &str[startPos], ( iCnt - startPos ) );

                    destStr[iCnt - startPos] = '/0';

                    return;

                }

                startPos = iCnt + 1;

                strNum++;

            }

        }

    }

     


    最新回复(0)