C语言中字符切割函数split的实现

Python017

C语言中字符切割函数split的实现,第1张

#include <stdio.h>

#include <string.h>

// 将str字符以spl分割,存于dst中,并返回子字符串数量

int split(char dst[][80], char* str, const char* spl)

{

    int n = 0

    char *result = NULL

    result = strtok(str, spl)

    while( result != NULL )

    {

        strcpy(dst[n++], result)

        result = strtok(NULL, spl)

    }

    return n

}

int main()

{

    char str[] = "what is you name?"

    char dst[10][80]

    int cnt = split(dst, str, " ")

    for (int i = 0 i < cnt i++)

        puts(dst[i])

    return 0

}

//以下解法的前提是,先把所有环变成1.无环路,2.一个环没有扣住3个及以上的其他环

void main(){

int array[16] = {0}

//init, array[1] = xxx根据输入初始化数组,如1-2,则,array[1] = 2,...

int HashArray[16] = {0}

int head, tail

int head_tmp, tail_tmp

getNextList(array, HashArray, head, tail)

 

while(getNextList(array, HashArray, head_tmp, tail_tmp))

{

    array[tail] = head_tmp

    tail = tail_tmp

}

//此时的array数组里面应该是一条链了

}

 

getNextList(int array[], int Hasharray, int & head, int & tail)

{

    int head_tmp = 1

    while(Hasharray[head_tmp++] != 0)

    if (head_tmp == 16)

        return false

    else

    {

        head = tail = head_tmp - 1

        while(array[tail] != 0)

        {

            Hasharray[tail] = 1

            tail++

         }

         Hasharray[tail] = 1

         return true

     }

}