Форум программистов, компьютерный форум CyberForum.ru

Разбить на лексемы и вывести в обратном порядке - C++

Восстановить пароль Регистрация
 
Dezzered
Сообщений: n/a
06.06.2012, 15:52     Разбить на лексемы и вывести в обратном порядке #1
Напишите программу, которая вводит строку текста, разбивает ее на лексемы и выводит лексемы в обратном порядке.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.06.2012, 15:52     Разбить на лексемы и вывести в обратном порядке
Посмотрите здесь:

Вывести слова в обратном порядке C++
Вывести строку в обратном порядке. C++
C++ Как разбить на лексемы
C++ Вывести имя в обратном порядке
C++ Вывести в обратном порядке
C++ String разбить на лексемы
Вывести слова в обратном порядке C++
C++ Разбить на слоги каждое четное слово в строке, а каждое нечетное записать в обратном порядке

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Dezzered
Сообщений: n/a
07.06.2012, 16:29     Разбить на лексемы и вывести в обратном порядке #2
Есть программа которая вводит строку текста, разбивает ее на лексемы и выводит лексемы в обратном порядке, работает в dev c++,но отказывается работать Microsoft Visual C++, исправте пожалуйста.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void){
    char buf[1000], **words, *p;
    int cnt, i;
    while (true){
        printf("String: ");
        gets(buf);
        if ( *buf == '\n')  
            break;
        words = NULL;
        cnt = 0;
        for ( p = strtok(buf, " .,;:!?\t\n"); p != NULL; p = strtok(NULL, " .,;:!?\t\n") ){  
            words = (char**)realloc(words, sizeof(char*) * (cnt + 1));  
            words[cnt] = strdup(p); 
            ++cnt; 
        }
        if ( words == NULL || cnt == 0 )  
            return 1;
        printf("Reverse words:\n"); 
        for ( i = cnt - 1; i >= 0; --i ){
            printf("%s ", words[i]);
        printf("\n");
        for ( i = 0; i < cnt; ++i )  
            free(words[i]);
        free(words);
    }
    return 0;
}
Polikarpic
45 / 45 / 7
Регистрация: 29.06.2011
Сообщений: 174
07.06.2012, 16:56     Разбить на лексемы и вывести в обратном порядке #3
Ваша программа нигде не работает. Во-первых, несоответствие фигурных скобок(у вас не закрыт бесконечный цикл) во-вторых-выползает ошибка access violation(пытаетесь работать с памятью, недоступной программе)- аналог Linux-му Segmentation fault.
Yandex
Объявления
07.06.2012, 16:56     Разбить на лексемы и вывести в обратном порядке
Ответ Создать тему
Опции темы

Текущее время: 11:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru