C++
.Описать процедуру SplitStr(S,W,N), которая формирует по данной строке S массив W слов, входящих в S(массив W и его размер N являются выходными параметрами). Словом считается набор символов, не содержащий пробелов и ограниченный пробелами или началом/концом строки; S содержит не более 10 слов. Используя функцию SplitStr, найти количество слов N, содержащихся в данной строке S, и сами эти слова.
пРОбелы, идущие подряд, должны считаться за слово, у меня не получается это реализовать
# 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;
}
.Описать процедуру SplitStr(S,W,N), которая формирует по данной строке S массив W слов, входящих в S(массив W и его размер N являются выходными параметрами). Словом считается набор символов, не содержащий пробелов и ограниченный пробелами или началом/концом строки; S содержит не более 10 слов. Используя функцию SplitStr, найти количество слов N, содержащихся в данной строке S, и сами эти слова.
пРОбелы, идущие подряд, должны считаться за слово, у меня не получается это реализовать
# 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;
}