Есть текстовый файл, в котором записано несколько строк. Слова разделены пробелами.Необходимо посчитать только слова одной строки (пользователь сам вводит номер строки). Хотел сделать проверку, чтобы счетчик считал за слово если в строке идет порядок - символ-пробел-символ. Подскажите, что не так?
string line1, line2;
int c = 0;
ifstream f("text.txt");
for (int b = 1; b < a; b++)
{
getline(f, line1);
}
getline(f, line2);
for (int b = 0; b <= line2.length(); b++)
{
if (isalpha(line2[b]))
{
if (line2[b+1] == ' ')
{
if (isalpha(line2[b + 2]))
c++;
}
}
}
f.close();
Можно использовать разделить строку по пробелам и таким образом посчитать число слов:
unsigned wordCount(const std::string &s)
{
std::vector<std::string> elems;
std::stringstream ss(s);
std::string item;
while (std::getline(ss, item, ' ')) {
if(!item.empty() && isalpha(item[0]))
elems.push_back(item);
}
return elems.size();
}
Тут так же рассматриваем случай, когда стоят два пробела подряд. Тогда слово не будет добавлено. Аргументом функции будет считанная строка из файла. Если первый символ элемента буква, то будем считать этот элемент словом.
Постараемся это сделать проще, быстрее и без излишней памяти
string s;
int count{};
while (f >> s && char(cin.peek()) != '\n')
++count;
cout <<((count) ? ++count : count) ;
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
После считывания из файла, у меня считывается строка с символом перехода на новую строку, в итоге при попытке узнать длину строки выводит...
Есть select элемент с начальным заголовком Gender нажимая на который можно выбрать male или female