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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
ridd[73rus]
0 / 0 / 0
Регистрация: 22.10.2010
Сообщений: 17
#1

Дополнить каждое слово предложения пробелами (по длине максимального слова) - C++

22.10.2010, 13:31. Просмотров 810. Ответов 5
Метки нет (Все метки)

Вот задачка. "Дополнить каждое слово предложения пробелами так, чтобы его длина была
равна длине самого длинного слова. Распечатать получившееся предложение".
Прошу решить её , желательно с подробным описанием функций . И чтобы каждое действие выполнялось отдельной функцией . язык - СИ.
прошу помощи лиш потому, что Си не изучал , в основном делфи изучал. А тут преподу принципиально стало. Заранее благодарен за помощь.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.10.2010, 13:31
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Дополнить каждое слово предложения пробелами (по длине максимального слова) (C++):

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

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

Напечатать все слова заданного предложения, состоящие из тех же букв, что и первое слово предложения - C++
Напечатать все слова заданного предложения (слова разделены пробелами), состоящие из тех же букв, что и первое слово предложения.

Удалить каждое второе слово из предложения - C++
помогите пожалуйста написать программу: Удалить каждое второе слово из предложения. Заранее спасибо!

Вводится строка каждое слово которой отделяется от других слов одним или несколькими пробелами. - C++
Вводится строка каждое слово которой отделяется от других слов одним или несколькими пробелами. Найти количество слов состоящих из пяти...

Дана строка, слова в которой разделены пробелами. Оставьте в ней только те слова, которые начинаются на ту же букву, что и первое слово. - C++
5.17 Дана строка, слова в которой разделены пробелами. Оставьте в ней только те слова, которые начинаются на ту же букву, что и первое...

5
TheMachinist
244 / 176 / 15
Регистрация: 14.06.2010
Сообщений: 422
22.10.2010, 17:31 #2
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
#include <stdio.h>
#include <string.h>
#include <conio.h>
 
void main()
{
    char str[256]; // это строка
    char cstr[256]; // это копия строки для проведения операций, чтобы исходная строка не изменялась
    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," "); // и так далее до конца строки
}
puts(cstr); // выводим то что у нас получилось
_getch();
}
1
ridd[73rus]
0 / 0 / 0
Регистрация: 22.10.2010
Сообщений: 17
22.10.2010, 20:49  [ТС] #3
Благодарю за помощь !
0
ridd[73rus]
0 / 0 / 0
Регистрация: 22.10.2010
Сообщений: 17
27.10.2010, 10:57  [ТС] #4
нужно внести изменения в прогу , она должна соответствовать требованиям : "Использование
глобальных переменных запрещено. Все исходные данные функция должна по-
лучать в виде параметров. Каждая функция должна выполнять строго опреде-
ленное действие."
0
TheMachinist
244 / 176 / 15
Регистрация: 14.06.2010
Сообщений: 422
27.10.2010, 15:19 #5
нужно внести изменения в прогу , она должна соответствовать требованиям : "Использование
глобальных переменных запрещено. Все исходные данные функция должна по-
лучать в виде параметров. Каждая функция должна выполнять строго опреде-
ленное действие."
Вот что я могу предложить..... Создаем в main() массив cstr[256] для хранения результата. Создаем
функцию AddSpaces() которая и делает то ,что нам надо. И передаем ей в качестве параметров обе
строки-массивы (str и cstr) вызывая её из main()

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
#include <stdio.h>
#include <string.h>
#include <conio.h>
 
void AddSpaces(char str[256], char cstr[256]); // прототип
 
void main()
{
        char str[256]; // это строка 
        char cstr[256];
        AddSpaces(str,cstr);
puts(cstr);// выводим то что у нас получилось
_getch();
}
 
void AddSpaces(char str[256], char cstr[256])
{
        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," "); // и так далее до конца строки
}
}
2
ridd[73rus]
0 / 0 / 0
Регистрация: 22.10.2010
Сообщений: 17
10.11.2010, 22:18  [ТС] #6
требуется некоторое изменение , все теже требования , но реализовать каждое действие отдельной функцией . Заранее благодарен за помощь
0
10.11.2010, 22:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.11.2010, 22:18
Привет! Вот еще темы с ответами:

Дано два предложения (Распечатать слова из первого предложения, который начинаются на первую букву последнего слова второго предложения) - C++
Дано два предложения. Распечатать: - слова из первого предложения, который начинаются на первую букву последнего слова второго...

Вывести на экран предпоследнее и последнее слово (слова разделены пробелами) - C++
помогите пожалуйста сделать задачу Вводится строка произвольного текста. Вывести на экран предпоследнее и последнее слово (слова...

В тексте удалить каждое четное слово, продублировать каждое нечетное слово - C++
Не могу решить данную задачу, много чего перечитал, за помощь буду благодарен&quot; &quot;В тексте удалить каждое четное слово, продублировать...

В тексте удалить каждое четное слово, продублировать каждое нечетное слово - C++
Не могу решить данную задачу, много чего перечитал, за помощь буду благодарен В тексте удалить каждое четное слово, продублировать...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru