0 / 0 / 0
Регистрация: 08.02.2016
Сообщений: 5
1

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

09.12.2016, 15:51. Показов 2265. Ответов 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.12.2016, 15:51
Ответы с готовыми решениями:

Функция: принять массив слов, вернуть массив из групп этих слов
Напишите функцию на языке PHP, которая принимает массив слов, а возвращает массив из групп этих...

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

вывести все номера телефонов содержащихся в сообщении
ЗАДАНИЕ &quot;в сообщении могут встречаться номера телефонов записанные в формате xx-xx-xx...

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

3
7166 / 6141 / 2802
Регистрация: 14.04.2014
Сообщений: 26,462
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
0 / 0 / 0
Регистрация: 08.02.2016
Сообщений: 5
09.12.2016, 17:58  [ТС] 3
nmcf, спасибо большое! Еще вопрос, как получить количество строк в переданном массиве в main?

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

typedef тип имя;

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

у нас (*res)[20] - получается имя, так? (указатель на строки типа char с длинной строки 20) Все верно?
0
7166 / 6141 / 2802
Регистрация: 14.04.2014
Сообщений: 26,462
09.12.2016, 18:47 4
res - имя, а остальное описывает массив.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.12.2016, 18:47
Помогаю со студенческими работами здесь

Функция: вернуть количество слов, заканчивающихся на согласную букву
функция countsoglend(f:text):word возвращает количество слов, заканчивающихся на согласную букву в...

Может ли функция вернуть массив или структуру?
Столкнулся с такой проблемой, не могу возвращать список значений из функции. Если есть какие-то...

Функция: получить массив и вернуть сумму его элементов
Доброго времени суток! Помогите с решением задачи: Напишите функцию, которая принимает массив, а...

Функция: вернуть 0, если массив образует убывающую последовательность
Написать функцию, которая возвращает 0, если массив образует убывающую последовательность, в...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru