如何从指针获取字符串值

时间:2017-10-25 13:31:49

标签: c string pointers tree strtok

如何从strtok指针获取字符串值并将其插入树中? 这是输入和除法部分:

printf("\nDigite a frase: ");
fgets(frase,TAM,stdin);

val=strtok(frase," (),.-;");
while(val!=NULL){      
   inserir(&raiz,val);
   val = strtok (NULL, " (),.-;");
}

这是树中的插入:

void inserir(no **arvore, char val[]){
    no *temp = NULL;
    if(!(*arvore))
    {
        temp = (no *)malloc(sizeof(no));
        temp->esq = temp->dir = NULL;
        temp->dado = val;
        temp->freq=1;
        *arvore = temp;
        return;
    }

    if(val < (*arvore)->dado)
    {
        inserir(&(*arvore)->esq, val);
    }
    else if(val > (*arvore)->dado)
    {
        inserir(&(*arvore)->dir, val);
    }
    else if(val==(*arvore)->dado){
        (*arvore)->freq++;
    }

}

我需要插入部分来比较字符串的值,但它会比较指针的值。

1 个答案:

答案 0 :(得分:1)

谢谢@gbtimmon。我将比较方法更改为:

int comp=strcmp(val, (*arvore)->dado);

if(comp<0)
{
    inserir(&(*arvore)->esq, val);
}
else if(comp>0)
{
    inserir(&(*arvore)->dir, val);
}
else if(comp==0){
    (*arvore)->freq++;
}