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

Функция: вернуть массив слов, содержащихся в текстовом сообщении

09.12.2016, 15:51. Просмотров 457. Ответов 3

Стоит такая задача:
функция должна возвратить массив слов, содержащихся в текстовом сообщении
char* Words(char *s)
Как это можно осуществить?
Я создал массив, он корректно работает, хотя и не самый удачный вариант реализации:
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
char *Words(char *s) {
    static char massive[20][20]; // max 20 words in massive with 20 liters length
    int len = strlen(s); // get length of line
    int count = 0, stop = 0;
    int i = 0, str = 0;
 
JumpToPoint: //funny thing
 
    for (; i < len; i++) {
        if ((s[i] == ':') || (s[i] == ',') || (s[i] == ' ')) {
            continue;
        }
        else {
            stop = i;
            break;
        }
    }
    for (int j = 0; stop <= len; stop++, j++) {
        if ((s[stop] != ':') && (s[stop] != ',') && (s[stop] != ' ')) {
            massive[str][j] = s[stop];
        }
        else {
            massive[str][j] = '\0';
            i = stop;
            str++;
 
goto JumpToPoint; //funny thing
 
            break;
        }
    }
return *massive;
}
Но не понимаю как его вернуть и как вывести в main(). Слово static перед массивом означает что его не уничтожат при выходе из функции, верно? Все спасибо за ответы!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.12.2016, 15:51
Ответы с готовыми решениями:

Почему функция не может вернуть массив, но может вернуть структуру содержащий массив?
Почему функция не может вернуть массив, но может вернуть структуру содержащую...

Функция, получает строку слов и рзделителей, а на выходе имеет массив слов из строки и количество этих слов
мне нужна функция, которая во входе получает строку слов и рзделителей (&quot; &quot;,...

Функция: создать динамический массив, состоящий из n натуральных чисел и вернуть его из функции
Пришёл к вам за советом. Вот задание. Напишите функцию int* naturals(int n),...

Функция формирующая из строки массив слов
C++ .Описать процедуру SplitStr(S,W,N), которая формирует по данной строке S...

Найти сумму всех слов-чисел, содержащихся в строке
С клавиатуры вводиться строка длинной не более 100 символов. Строка состоит из...

3
nmcf
6271 / 5577 / 2537
Регистрация: 14.04.2014
Сообщений: 23,468
09.12.2016, 16:26 #2
C++
1
2
3
4
5
6
7
8
typedef char (*res)[20];
 
res Words(char *s)
{
    //...
 
    return massive;
}
1
Maxlero
0 / 0 / 0
Регистрация: 08.02.2016
Сообщений: 5
09.12.2016, 17:58  [ТС] #3
nmcf, спасибо большое! Еще вопрос, как получить количество строк в переданном массиве в main?

Добавлено через 41 минуту
nmcf, об typedef вопрос:

typedef тип имя;

где тип — это любой существующий тип данных, а имя - это новое имя для данного типа. Новое имя определяется в дополнение к существующему имени типа, а не замещает его.

у нас (*res)[20] - получается имя, так? (указатель на строки типа char с длинной строки 20) Все верно?
0
nmcf
6271 / 5577 / 2537
Регистрация: 14.04.2014
Сообщений: 23,468
09.12.2016, 18:47 #4
res - имя, а остальное описывает массив.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.12.2016, 18:47

Найти количество слов содержащихся в каждом предложении файла
Написать программу, которая считывает предложения из фаила и записывает в...

Сколько слов, состоящих только из прописных букв, содержится в сообщении
Всем привет.Есть такое вот задание: Подсчитать сколько слов, состоящих только...

Сформировать новый файл, дописав в каждую строку исходного файла количество, содержащихся в ней слов.
В каждой строке исходного файла имеется произвольное количество слов. ...


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

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

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