Я делаю простую программу сравнения слов.
Для этого у меня есть список слов в текстовом файле с одним словом в строке.
Затем я импортировал все эти словав программу с использованием ifstream, а затем в BST.
Затем я использовал для вставки, создания функций root, search и traversal.
Но я получаю эти две простые ошибки, которые явообще не понимаю /.
Пожалуйста, помогите!
Я использовал BST, чтобы сохранить все слова из файла txt в программе, а затем искать среди них. Я также включил возможность добавления новых слов непосредственно в программу, но не в текстовый файл.
У меня возникают следующие ошибки:
"В функции void create ()
несовместимые типы при присвоении 'char' к 'char [100]'
В функции void insert ()
несовместимые типы при присвоении 'char''char [100]'
"
#include<iostream>
#include <fstream>
#include <string>
using namespace std;
char x;
char a[100];
int count=0,i=0;
char str;
struct node
{
struct node *left;
struct node *right;
char word[100];
};
struct node *root=NULL;
void create()
{
struct node *newnode;
newnode=(struct node *)malloc(sizeof(struct node));
char str[100];
for(i=0;i<=100;i++) {
str= a[i];
}
strcpy(newnode->word,str);
newnode->left=NULL;
newnode->right=NULL;
root=newnode;
}
void insert()
{
struct node *newnode,*temp,*parent;
newnode=(struct node *)malloc(sizeof(struct node));
char str[100];
for(i=0;i<=100;i++) {
str= a[i];
}
strcpy(newnode->word,str);
newnode->left=NULL;
newnode->right=NULL;
temp=root;
while(temp!=NULL)
{
parent=temp;
if(strcmp(temp->word,str)<0)
temp=temp->left;
else
temp=temp->right;
}
if(strcmp(parent->word,str)<0)
parent->left=newnode;
else
parent->right=newnode;
}
void traverse(struct node *temp)
{
if(temp!=NULL)
{
traverse(temp->right);
cout<<temp->word<<":";
traverse(temp->left);
}
}
void search()
{
struct node *temp;
temp=root;
char ab[100];
cout<<"enter the word to search \n";
cin>>ab;
while(temp!=NULL)
{
if(strcmp(temp->word,ab)==0)
{
cout<<"element found \n";
break;
}
else if(strcmp(temp->word,ab)<0)
{
temp=temp->left;
}
else if(strcmp(temp->word,ab)>0)
{
temp=temp->right;
}
else
{
cout<<"not found";
}
}
}
int main()
{
ifstream inFile;
inFile.open("test.txt");
if(inFile.fail()) {
cerr << "Error opening file"<< endl ;
exit(1);
}
char x;
char a[100];
int count=0,i=0;
char str;
while( !inFile.eof()) {
inFile >> x;
a[i]=x;
count++;
i++;
}
for (i=0;i<100;i++){
cout<< a[i]<<endl;
}
int choice;
while(1)
{
cout<<"***menu***\n1.cerate root node\n2.insert a word\n3.traverse\n4.search\n6.Exit\n";
cout<<"enter your choice \n";
cin>>choice;
switch(choice)
{
case 1:
create();
break;
case 2:
insert();
break;
case 3:
traverse(root);
break;
case 4:
search();
break;
case 6:
exit(0);
}
}
}