Дан массив из слов (в одной строке одно слово)

изучаемС++

Дан массив из слов (в одной строке одно слово). Исключить из массива все слова, в состав которых входит более пяти букв.
3 ответа

изучаемС++

В чем возникла проблема решения?


изучаемС++

#include <vector>
#include <string>
#include <algorithm>
#include <iterator>
#include <iostream>
 
int main()
{
    char* arr[] = {"Hellow", "Fine", "And", "Whatss", "Hehehe"};
    std::vector<std::string> vec(arr, arr + sizeof(arr)/sizeof(*arr));
    vec.erase(std::remove_if(vec.begin(), vec.end(), [](const std::string& str) {return str.size() > 5;}),
       vec.end());
    std::copy(vec.begin(), vec.end(), std::ostream_iterator<std::string>(std::cout, "\n"));
}


изучаемС++

спс^^ а я решил по другому:
#include<iostream.h>
#include<string.h>
void main ()
{
char  a[10][10], b[10][10];
int  kol,  len,  k = 1;
cout  << " Введите количество слов в массиве : "  ;
cin  >>  kol;
for  ( int i = 1; i <= kol;  i++)
    { cin >> a[i];
      len = strlen (a[i]);          // длина слова
      if  (len>=5)
            strcpy(b[k++], a[i]);     // копирование строки <а> в строку <b>
    }
k=k-1;
for  ( i = 1 ; i <= k; i++ )
cout  <<  b[i]  <<  endl;  }