Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.91
morgan92
0 / 0 / 0
Регистрация: 08.03.2012
Сообщений: 51
#1

Строка, слова в которой разделены пробелами - C++

02.04.2012, 11:21. Просмотров 2193. Ответов 1
Метки нет (Все метки)

1) слова в строке разделены пробелами. найти самое длинное слово
2) слова в строке разделены последовательностями пробелов. удалить лишние пробелы
3) дана строка, слова в которой разделены пробелами. удалить из строки самое короткое слово
4) дана строка, слова в которой разделены пробелами. все слова в стороке перевернуть
5) дана строка, слова в которой разделены пробелами. посчитать количество слов в строке, которые начинаются и заканчиваются на одну букву
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.04.2012, 11:21
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Строка, слова в которой разделены пробелами (C++):

Дана строка текста, в которой слова разделены пробелами.
Доброго времени суток ! Дана лаба: Дана строка текста, в...

Дана строка текста, в которой слова разделены пробелами и запятыми, вывести повторяющиеся слова
Помогите пожалуйста! Как мне найти и вывести повторяющиеся слова? П.С. При...

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

Дана строка текста, в которой слова разделены символами "#" и пробелами
Дана строка текста, в которой слова разделены символами "#" и пробелами....

Дана строка символов, состоящая из произвольного текста, слова разделены пробелами
Здравствуйте. Помогите написать программу: Реализовать алгоритм решения задачи....

Дана строка символов, состоящая из произвольного текста, слова разделены пробелами
Дана строка символов, состоящая из произвольного текста, слова разделены ...

1
bellinger
0 / 0 / 2
Регистрация: 31.03.2012
Сообщений: 2
03.04.2012, 23:23 #2
Лучший ответ Сообщение было отмечено morgan92 как решение

Решение

вот первые 3

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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
#include <stdio.h>
#include <string.h>
 
void show_str(char* title, char* str);
char* max_word(char* str);
char* delete_spaces(char* str);
char* min_word(char* str);
char* delete_word(char* str, char* word);
 
int main(){
    char* s = new char[100];
    strcpy(s, "слова  в        строке    разделены    пробелами");
 
    show_str("Предложение:", s);
    show_str("Самое длинное слово:", max_word(s));
    show_str("Самое короткое слово:", min_word(s));
    show_str("Удаляем лишние пробелы: ", delete_spaces(s));
    show_str("Удаляем самое короткое слово пробелы: ", delete_word(s, min_word(s)));
 
 
    delete [] s;
}
 
//Функция поиска самого длинного слова в предложении
char* max_word(char* str){
 
    char* copy = new char[strlen(str + 1)];
    char* delim = new char[2];
    char* token;
    char* max_word = new char[strlen(str + 1)];
 
    strcpy(copy, str);
    strcpy(delim, " ");
 
    for(token = strtok(copy, delim);token != 0;token = strtok(0, delim)){
        if(strlen(token) >= strlen(max_word))//если нужно первое самое длинное то > если последнее самое длинное, то >=
            strcpy(max_word, token);
    }
 
    delete [] copy;
    delete [] delim;
 
    return max_word;
}
 
//Функция поиска самого короткого слова в предложении
char* min_word(char* str){
    char* copy = new char[strlen(str + 1)];
    char* delim = new char[2];
    char* token;
    char* min_word = new char[strlen(str + 1)];
 
    strcpy(copy, str);
    strcpy(delim, " ");
    strcpy(min_word, str);
 
    for(token = strtok(copy, delim);token != 0;token = strtok(0, delim)){
        if(strlen(token) <= strlen(min_word))//если нужно первое самое длинное то > если последнее самое длинное, то >=
            strcpy(min_word, token);
    }
 
    delete [] copy;
    delete [] delim;
 
    return min_word;
}
 
//Функция удаления слова из предложения
char* delete_word(char* str, char* word){
    char* copy = new char[strlen(str + 1)];
    char* delim = new char[2];
    char* token;
    char* new_str = new char[strlen(str + 1)];
 
    strcpy(copy, str);
    strcpy(delim, " ");
 
    for(token = strtok(copy, delim);token != 0;token = strtok(0, delim)){
        if(strcmp(token, word) == 0) continue;
 
        strcat(new_str, token);
 
        token = strtok(0, delim);
        if(!token)
            break;
        else{
            strcat(new_str, " ");
 
            if(strcmp(token, word) == 0) continue;
 
            strcat(new_str, token);
            strcat(new_str, " ");
        }
    }
 
    delete [] copy;
    delete [] delim;
 
    return new_str;
}
 
 
//Функция удаления лишних пробелов из предложения
char* delete_spaces(char* str){
    char* copy = new char[strlen(str + 1)];
    char* delim = new char[2];
    char* token;
 
    char* new_str = new char[strlen(str + 1)];
 
    strcpy(new_str, "");
    strcpy(copy, str);
    strcpy(delim, " ");
 
    for(token = strtok(copy, delim);token != 0;token = strtok(0, delim)){
        strcat(new_str, token);
 
        token = strtok(0, delim);
        if(!token)
            break;
        else{//не самый лучший вариант, но зато работает!
            strcat(new_str, " ");
            strcat(new_str, token);
            strcat(new_str, " ");
        }
 
    }
 
    delete [] copy;
    delete [] delim;
 
    return new_str;
}
 
//Функция вывода строки
void show_str(char* title, char* str){
    printf("%s\n\t%s\n",title, str);
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.04.2012, 23:23
Привет! Вот еще темы с решениями:

Дана строка слов котором разделены пробелами все слова в строке перевернуть на c++
Дана строка слов котором разделены пробелами все слова в строке перевернуть на...

Дана строка, в которой слова разделены одним пробелом. Найдите и выведите все слова указанной длины
В итоге вышло, что если первое слово правильной длинны - выводит все слова в...

Поменять местами первые слова (слова разделены пробелами) заданных строк, без использования процедур
Вводятся две строки произвольного текста. Поме-нять местами их первые слова...

Дана строка до точки, группа символов в которой между пробелами считается словом, знаки препинания от слова пробелом не отделяются
Дана строка до точки, группа символов в которой между пробелами считается...


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

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

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