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

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

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

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

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

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

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

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

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

Дана строка текста, в которой слова разделены символами "#" и пробелами - C++
Дана строка текста, в которой слова разделены символами "#" и пробелами. Необходимо: а) Определить колличество слов в строке и вывести на...

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

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

1
bellinger
0 / 0 / 0
Регистрация: 31.03.2012
Сообщений: 2
03.04.2012, 23:23 #2
вот первые 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++
В итоге вышло, что если первое слово правильной длинны - выводит все слова в строке. Если нет - ничего не выводит. int main() { char...

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

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

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


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

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

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