如何从指针获取字符串值
How to get the string value from a pointer
如何从 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++;
}
}
我需要插入部分来比较字符串的值,但它是在比较指针的值。
谢谢@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++;
}
如何从 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++;
}
}
我需要插入部分来比较字符串的值,但它是在比较指针的值。
谢谢@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++;
}