0
Wie bekomme ich den String-Wert von der strtok
Zeiger und fügen Sie es in einem Baum? Hier ist der Eingang und Dividierteil:Wie bekomme ich den String-Wert von einem Zeiger
printf("\nDigite a frase: ");
fgets(frase,TAM,stdin);
val=strtok(frase,"(),.-;");
while(val!=NULL){
inserir(&raiz,val);
val = strtok (NULL, "(),.-;");
}
Und hier ist die Einfügung in den Baum:
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++;
}
}
ich den Einführungsteil benötigen Sie den Wert der Zeichenfolge zu vergleichen, aber es ist zu vergleichen den Wert der Zeiger.
Ich glaube, Sie wollen strcmp verwenden – gbtimmon
Sie müssen eine Kopie der Zeichenfolge machen, wenn Sie es einfügen. Verwenden Sie 'strdup()' vielleicht, obwohl es POSIX anstatt Standard C ist. –
'strdup()' wird fast sicher dort sein. Wenn nicht, können Sie 'char * newStr = malloc (strlen (oldStr) + 1); strcpy (newStr, oldStr); ' – JeremyP