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

Ошибка в сортировке русского текста - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ GetCurrentDirectory и CharToOem - Windows7 + VS2012 как их "заставить дружить"? http://www.cyberforum.ru/cpp-beginners/thread877759.html
Здравствуйте, друзья. Подскажите, пожалуйста, как исправить ошибки? Вот код: #include <iostream> #include <windows.h> #include <io.h> #include <stdio.h> using namespace std;
C++ Подскажите аски код клавиши ENTER Хотел написать программу, которая вводит строки из файла и выводит их потом построчно, но для вывода каждой новой строки нужно нажать клавишу enter. Подскажите аски код клавиши ENTER или подскажи как можно изменить программу, вот код: #include<iostream> #include<fstream> #include<vector> using namespace std; int main() { ifstream cin("input.txt"); //ofstream cout("output.txt"); ... http://www.cyberforum.ru/cpp-beginners/thread877756.html
C++ В исходном тексте встречаются цепочки вида буквацифрабуквацифра
Здравствуйте, такая проблема: В исходном тексте встречаются цепочки вида буквацифрабуквацифра... Выделить все такие цепочки (длина их неизвестна) и включить их в таблицу, вначале расположив самые длинные, а затем короче. Для ускорения поиска иметь вспомогательный указатель на последний узел списка. Надо сделать 2-мя способами: через классы и списки.
C++ Написать шаблон класса полином и функции, высчитывающие производную и первообразную полинома
Доброе утро. Нам задали такое задание:написать шаблон класса полином и функции,высчитывающие производную и первообразную полинома.Вроде написал ,но компиллятор выдаёт ошибки. Скажите,пожалуйста, как исправить ошибки. Poly.h #ifndef POLY_H_INCLUDED #define POLY_H_INCLUDED #include <iostream> #include <cmath> using namespace std; template<class T>
C++ Перегруженная функция sqrt http://www.cyberforum.ru/cpp-beginners/thread877731.html
начал писать программу,а тут такая фигня перегруженная функция sqrt,в чем фокус не пойму я еще ничего не написал толком а уже перегруз #include<iostream> #include<math.h> using namespace std; void main() { setlocale(LC_ALL,"russian");//руссификатор int Sc,Sk; double r=0,a=0,dg=0,dm=0;//инициализация переменных
C++ cannot convert `float' to `float*. Почему так происходит? всем привет, помогите исправить ошибки... а то голова мало варит уже, а завтра надо сдать уже #include <stdio.h> #include <stdlib.h> #include <iostream> #include <iomanip.h> #include <math.h> #include <conio.h> подробнее

Показать сообщение отдельно
ruslan_bastos
1 / 1 / 0
Регистрация: 10.12.2012
Сообщений: 17

Ошибка в сортировке русского текста - C++

25.05.2013, 09:07. Просмотров 194. Ответов 0
Метки (Все метки)

Есть произвольный текст и его слова нужно отсортировать в алфавитном порядке. Результат записать в другой текстовый файл. При сортировке слова обрезаются или исчезают символы из них.

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#include "stdafx.h"
#include "stdio.h"
#include "conio.h"
#include "Windows.h"
#include <string.h>
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    //указатели на файлы
    FILE *in, *out;
    char mas[100][100], *word[100] = {NULL};
    int numWords = 0;
    char seps[] = " .,!?\n";
    
    int n = 0;
                    
    in = fopen("in.txt", "r");
    //Проверка на открытие файла
    if(in == NULL)
    {
        printf("Данный файл не найден!\n");
        return 0;
    }   
 
    while(!feof(in))
    {
        //Сканирую полностью строку из файла
        fgets(mas[n], 100, in);
        printf("%s", mas[n]);
        n++;                
    }       
    fclose(in);
 
    
    for(int i = 0; i < n; i++)
    {
        //Функция strtok выбирает из перменной mas до знака из seps все символы в word отправляя указатель. То есть разделяет строку на отдельные слова
        //Ищем первое слово
        word[numWords] = strtok(mas[i], seps);
        while( word[numWords] != NULL )
        {
            numWords++;
            //ищем следующее слово
            word[numWords] = strtok(NULL, seps); 
        }
    }
 
    char tmp[20];
 
        for(int i = 0; i < numWords-1; i++)
        {
            for(int j = i+1 ;j < numWords; j++)
            {
                if(strcmp(word[i], word[j]) > 0)
                {
                    strcpy(tmp, word[i]);
                    memset(word[i], 0, sizeof(word[i]));
                    strcpy(word[i], word[j]);
                    memset(word[j], 0, sizeof(word[j]));
                    strcpy(word[j], tmp);
                //  memset(tmp, 0, sizeof(tmp));
                }
            }
        }
 
    out = fopen("out.txt", "w");
 
    for(int i = 0; i < numWords; i++)
    {
        fprintf(out, "%s ", word[i]);
    }
 
    fclose(out);
    printf("\nГотово.\n");  
    getch();    
 
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru