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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.91
morgan92
0 / 0 / 0
Регистрация: 08.03.2012
Сообщений: 51
02.04.2012, 11:21     Строка, слова в которой разделены пробелами #1
1) слова в строке разделены пробелами. найти самое длинное слово
2) слова в строке разделены последовательностями пробелов. удалить лишние пробелы
3) дана строка, слова в которой разделены пробелами. удалить из строки самое короткое слово
4) дана строка, слова в которой разделены пробелами. все слова в стороке перевернуть
5) дана строка, слова в которой разделены пробелами. посчитать количество слов в строке, которые начинаются и заканчиваются на одну букву
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.04.2012, 11:21     Строка, слова в которой разделены пробелами
Посмотрите здесь:

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

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
bellinger
Сообщений: n/a
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);
}
Yandex
Объявления
03.04.2012, 23:23     Строка, слова в которой разделены пробелами
Ответ Создать тему
Опции темы

Текущее время: 05:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru