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

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

Войти
Регистрация
Восстановить пароль
 
Dushesko
0 / 0 / 0
Регистрация: 25.02.2017
Сообщений: 2
#1

Функция формирующая из строки массив слов - C++

25.02.2017, 10:45. Просмотров 315. Ответов 3
Метки нет (Все метки)

C++
.Описать процедуру SplitStr(S,W,N), которая формирует по данной строке S массив W слов, входящих в S(массив W и его размер N являются выходными параметрами). Словом считается набор символов, не содержащий пробелов и ограниченный пробелами или началом/концом строки; S содержит не более 10 слов. Используя функцию SplitStr, найти количество слов N, содержащихся в данной строке 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
# include <iostream>
# include <string>
 
using namespace std;
void SplitStr(string S, string *W, int *N)
{
int i, j;
 for (i=0, *N=0; i<S.length(); i=j+1)
 {
 j = S.find_first_of(" ", i); 
  if (j<0) j = S.length();
 W[(*N)++] = S.substr(i, j-i);
 }
}
 
int main()
{
string S;
string *W = new string[10];
char i;
int N;
getline(cin, S);
SplitStr(S, W, &N);
cout << N << " words:" << endl;
 for (i=0; i<N; i++)
 cout << W[i] << endl;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.02.2017, 10:45
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Функция формирующая из строки массив слов (C++):

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

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

Функция, формирующая одномерный массив - C++
Написать функцию формирующую одномерный массив, состоящий из абсолютных значений минимальных элементов каждого столбца прямоугольной...

Функция разделения строки в массив отдельных частей этой строки - C++
Помогите написать функцию, которая на вход принимает строку типа String и возвращает уже массив String содержащий отдельные части этой...

Функция формирующая целое значение по строке из нулей и единиц, кодирующей это целое значение в двоичной форме - C++
Напишите функцию, формирующую целое значение по строке из нулей и единиц, кодирующей это целое значение в двоичнойформе, и вызывающую ее...

Разделение строки на массив строк из отдельных слов - C++
Как разделить строку типа &quot;У него было много друзей.&quot; на массив строк, состоящий из отдельных слов?

3
zss
Модератор
Эксперт С++
6928 / 6490 / 2182
Регистрация: 18.12.2011
Сообщений: 17,105
Завершенные тесты: 1
25.02.2017, 12:04 #2
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
#include <iostream>
#include <string>
#include <sstream>
#include <vector>
 
using namespace std;
void SplitStr(string S, vector<string>& W)
{
    istringstream ss(S);
    string wrd;
    while(ss>>wrd)
        W.push_back(wrd);
}
 
int main()
{
    vector<string> X;
    string S;
    getline(cin, S);
    SplitStr(S, X);
    cout << X.size() << " words:" << endl;
    for (size_t i=0; i<X.size(); i++)
        cout << X[i] << endl;
    // а лучше вывести через итератор:
    //for(vector<string>::iterator p=X.begin();p!=X.end();++p)
    //  cout<<*p<<endl;
    system("pause");
    return 0;
}
1
Dushesko
0 / 0 / 0
Регистрация: 25.02.2017
Сообщений: 2
27.02.2017, 10:35  [ТС] #3
Но когда я запускаю эту прогу, пробелы, идущие аодряд, по-прежнему не считаются за слова, а за разделители. ПОпробовал вместо двух строк перед комментарием вставить то, что закомментировано- error Id returned 1 exit status. И, если не трудно, объясните, ка работают новые строки?А то я учусь на 1-ом курсе и могу понять только то, что сам писал
0
Nemovok
237 / 84 / 34
Регистрация: 30.10.2015
Сообщений: 521
Завершенные тесты: 1
27.02.2017, 14:35 #4
Цитата Сообщение от Dushesko Посмотреть сообщение
Попробовал вместо двух строк перед комментарием вставить то, что закомментировано- error Id returned 1 exit status.
Вместо них можешь написать вот так (c++11):
C++
1
2
for (const auto& i : X)
    cout << i << endl;
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.02.2017, 14:35
Привет! Вот еще темы с ответами:

Функция для добавления строки в двумерный массив - C++
Помогите написать функцию для добавления в двумерный массив строки

функция возвращает массив слов, содержащихся в текстовом сообщении char* Words(char *s) - C++
Стоит такая задача: функция должна возвратить массив слов, содержащихся в текстовом сообщении char* Words(char *s) Как это можно...

Функция и двухмерный массив (Поменять в массиве местами строки) - C++
Дан массив действительных чисел размера m на n, где m и n – натуральные числа. Поменять в массиве местами строку с наибольшим и строку с...

Написать программу, которая читает строки из файла в массив строк, и выводит их на экран только названия, состоящие из нескольких слов - C++
помогит плиз срочно надо а я вообще не знаю как их решать заранее спасибо 1)В файле хранятся названия фирм. Каждая строка запись об...


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

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

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