Дан строковый массив из n элементов, где n – натуральное число. Найти в этом массиве самую длинную подстроку, не содержащую цифры.
Я не понимаю как это можно реализовать, не зная количества элементов. Я так понимаю, что надо сначала реализовать ввод количества символов с клавиатуры, затем необходимо считать с клавиатуры данные, поместить все это дело в массив типа char размером с длиной строки, и поместить подстроки, не содержащие цифр в контейнер вектор, затем найти самую длинную такую строку.
Застрял на том, что не знаю как заполнить контейнер элементами посимвольно и превратить это все в строковый контейнер. То бишь допустим кол-во символов равно 10, вводим строку: asd456h78i. Контейнер q заполняется посимвольно, там лежат 'a'
, 's'
, 'd'
, 'h'
, 'i'
. Надо теперь завести новый контейнер допустим conteiner
и чтоб там было вот так: conteiner[0] = "asd"
, conteiner[1] = "h"
, conteiner[2] = "i"
и тд. + Надо как то надо подсчитать количество букавок в каждой ячейке, допустим conteiner[0] содержит 3 буквы
+ надо как то учесть, что количество строк с максимальной длиной может быть больше 1
int n;
cin >> n;
char *a = new char[n+1];
vector<char> q;
gets_s(a,n+1);
cin.getline(a, n+1);
for (int i = 0, len = strlen(a); i < len; i++)
{
if (isdigit(a[i])) continue;
while (!isdigit(a[i]))
{
q.push_back(a[i]);
if (i == len)
break;
i++;
}
for (int i = 0; i< q.size(); i++)
cout << q[i] << endl;
q.clear();
}
delete[] a;
_getch();
#include <iostream>
#include <set>
using namespace std;
int main()
{
string s = "675Has12 a strong desire to2 learn and explore44 new technologies " ;
set<string> res;
auto first = s.begin();
string vs;
while ( first != s.end() ) {
// если первый символ цифра, то находим символ нецифру
if (isdigit(*first))
first = find_if(first, s.end(), [](char c) { return !isdigit(c); });
auto last = find_if(first, s.end(), [](char c) { return isdigit(c); });
// получаем строку без цифр
vs = accumulate(first, last, string());
res.insert(vs);
first = last;
}
cout << *res.begin(); // ваше самое длинное слово
return 0;
}
и еще :
"Дан строковый массив из n элементов, где n – натуральное число"
-
Саму собой разуммется, что n
не только натуральное, но и целое без знака, если оно представляет количество элементов...
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Как задать при вызове QFileDialog стандартную папку, которая должна показываться?
Моя задача состоит в том чтобы получить имя фамилию и номер телефона абонентаВот так я получаю все значения, кроме фамилии
Здравствуйте, давно читаю разные туториалы и много где встречаю должно быть мало зависимостей, как я понял это все достигается при помощи...