C ++ Добавление токенов в связанный список с помощью strtok - PullRequest
0 голосов
/ 30 января 2019

Я новичок в C ++, и у меня тут немало проблем.Я не хочу раскрывать весь свой код, но надеюсь, что того, что у меня здесь есть, будет достаточно.

Цель состоит в том, чтобы создать связанный список указателей на символы, где каждый указатель указывает на значение токена.Пока что я имею в виду, что только первый токен помещается в связанный список.Например, если я введу «кошки круты», я получу только «[кошки]» в качестве вывода.Я уверен, что мой метод addNew правильный, поэтому я предполагаю, что он имеет отношение к strtok, но я не совсем уверен, что не так.

Еще один вопрос - как печатать скобки вокруг каждого токена?То, что у меня сейчас есть, печатает фигурные скобки вокруг всей моей строки вывода.Любая помощь будет принята с благодарностью:)

class List{
// Node constructor

public:
void addNew(char *tok){
    Node *newNode = new Node;
    newNode -> data = tok;
    newNode -> next = NULL;
    if(head == NULL) head = newNode;
};

void printTokens(){
    if(head == NULL) std::cout << "Empty";
    Node *tmp;
    tmp = head;
    while(tmp != NULL){
        std::cout << "[" << tmp -> data << "]";
        tmp = tmp -> next;
    } // While loop
};
};

int main(){
    List list;

    // prompt is a char array created from the user's input
    char delim[] = {' ', '|', ';', '&'};
    char *token = strtok(prompt, delim); 

    while(token){
        list->addNew(token);
        token = strtok(NULL, delim);
    }
    list -> printTokens();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...