Форум программистов, компьютерный форум, киберфорум
Наши страницы

дополнить пробелами каждое слово так, чтобы его длинна приравнялась длинне самого длинного слова в строке - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Разрешено ли и возможно ли программисту написать приложение для работы с процессинговым центром Банка? http://www.cyberforum.ru/cpp-beginners/thread287803.html
Собственно Сабж Интересуюсь, могу ли я написать приложение которое общается по зашифрованному каналу с процессинговым центром банка?
C++ Доступ из статической функции к не стачисеским переменным Добрый день! Имеется класс со статической функцией, как получить доступ, из это функции к не статичным переменным. Что то типа этого: class MyClass { public: int Val1; int Val2; static... http://www.cyberforum.ru/cpp-beginners/thread287794.html
C++ Деление длинного числа
Почему-то правильно считает только если делить на 200, например, на 20- неправильно, на 2, соответственно тоже...Подскажите, пожалуйста, почему? что исправить? l_int l_int :: operator /(int a) {...
C++ Найти максимальный элемент в строке матрицы
Здравствуйте, помогите в решении вопроса. Я делал. Но сейчас что-то не могу разобраться Что мне исправить, чтобы мне выводило только правильно? Мне нужно посчитать максимальный элемент в каждой...
C++ Получить квадратную матрицу размерности N http://www.cyberforum.ru/cpp-beginners/thread287781.html
Получить квадратную матрицу размерности N:
C++ Поиск файлов в директории Добрый день. Что прошу: Есть exe, при запуске он должен найти все папки в этой директории и скопировать себя в них. С помощью чего можно осуществить поиск? Как это сделать динамически(копировать... подробнее

Показать сообщение отдельно
Fagroz
0 / 0 / 0
Регистрация: 29.11.2010
Сообщений: 15

дополнить пробелами каждое слово так, чтобы его длинна приравнялась длинне самого длинного слова в строке - C++

03.05.2011, 15:18. Просмотров 550. Ответов 3
Метки (Все метки)

Язык Си.
Нужна помощь с файлами. Компиляция проходит успешно, но при запуске Windows выдает ошибку. Задача программы: дополнить пробелами каждое слово так, чтобы его длинна приравнялась длинне самого длинного слова в строке. Саму строку считывать из одного файла, результат записать в другой файл. Вот программа:

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
#include <stdio.h>
#include <string.h>
#include <conio.h>
#define N 20
 
 
void AddSpaces(char str[256], char cstr[256]); // прототип
void Input (char str[N]);                      // прототип
void Out (char cstr[]);                           // прототип
 
int main()
{
    char str[N]; // это строка
    char cstr[N];
    Input (str);
    AddSpaces(str,cstr);
    Out (cstr);
//puts(cstr);// выводим то что у нас получилось
    return 0;
}
 
void Input (char str[N])
{
    FILE *f;
    f = fopen ("inp.txt", "r");
    fgets (str, N, f);
    fclose (f);
}
 
void AddSpaces(char str[N], char cstr[N])
{
    char spaces[20] = {"          "}; // массив пробелов
    //gets(str); // ввод строки с клавиатуры
 
    strcpy(cstr,str); // создаем копию(копируем из str в cstr)
    char * pch; // указатель на символы
    int max_len = 0 ; // длина максимального слова
    int length; // длина отдельно взятого слова
    int dif; // разница в длине
    pch = strtok(cstr," "); // указатель указывает на первое слово строки(то что до первого пробела)
    while (pch != NULL)
    {
        length = strlen(pch); // длина слова
        if (max_len < length) max_len = length; // выводим максимальную длину слова
        pch = strtok(NULL," "); // переходим к следующему слову
    }
 
    strcpy(cstr,""); // теперь cstr пустая строка
    pch = strtok(str," "); // берем первое слово из str
 
    while (pch != NULL)
    {
        length = strlen(pch); // измеряем его длину
        dif = max_len - length; // сравниваем с максимальной
        strcat(cstr,pch); // присоединяем его к cstrгш
        strncat(cstr,spaces,dif); // присоединяем к cstr из spaces кол-во пробелов(dif)
        pch = strtok(NULL," "); // и так далее до конца строки
    }
}
 
void Out (char *cstr)
{
    FILE *f;
    f = fopen ("result.txt", "w");
    fputs (cstr, f);
    fclose (f);
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.