Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 11.05.2015, 11:26   #1
Anton12312
Новичок
 
Регистрация: 11.05.2015
Сообщений: 2
Репутация: 10
По умолчанию Вывести наибольшее количество пробелов, что идут подряд

Из файла считывается текст и выводится наибольшее количество пробелов, что идут подряд. Помогите, как это реализовать, где у мея ошибки? Программа не работает правильно
Желательно чтобы был именно vector<string>, т.к. текст в файле на несколько строк, а другого способа реализации этой части, кроме vector<string> я не знаю

Код:
string s;
    int countTemp = 0, maxCountTemp =0;
    vector <string> arr;
    ifstream fin("input.txt");
        while (fin >> s)
    {
        arr.push_back(s);
    }
        for (int i = 0; i < arr.size(); i++)
    {
        if (arr[i] == " ")
        {
 
            countTemp=1;
            while (arr[i] == " " && arr[++i] == " ")
                countTemp++;
            if (countTemp > maxCountTemp) maxCountTemp = countTemp;
        }
    }
cout <<  maxCountTemp << endl;
Anton12312 вне форума   Ответить с цитированием
Старый 11.05.2015, 12:26   #2
Stilet
Белик Виталий :)
Профессионал
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Адрес: Украина, Донецкая область, г. Краматорск
Сообщений: 57,840
Репутация: 6850
По умолчанию

Код:
int spacer(string s){
	int i,j,max=0;
	for(i=0;i<s.length();i++){
		if(s[i]==' '){
			for(j=1;((i+j)<s.length()) && (s[i+j]==' ');j++);
			max=(max<j)?j:max;
		}
	}
	return max;
}
Функция, выясняющая самое большее кол-во пробелов в переданной ей строке.
Передавай ей то. что считал из файла, и ее результат запоминай в переменку, что будет хранить максимум, не забыв сравнивать уже имеющееся значение в максимуме с тем. что выдала функция.

Идея ясна?
__________________
I'm learning to live...
Stilet вне форума   Ответить с цитированием
Старый 11.05.2015, 17:19   #3
Anton12312
Новичок
 
Регистрация: 11.05.2015
Сообщений: 2
Репутация: 10
По умолчанию

Stilet, я так и сделал, но почему-то всё равно не находит пробелов, хотя в тексте они есть. Помогите, что не так??

Код:
#include <iostream>
#include <fstream>
#include <sstream>
#include <vector>
#include <string>
#include <string.h>
#include <windows.h>
using namespace std;

int main(int argc, char* argv[])
{
	string s;
	vector <string> arr;
	ifstream fin("input.txt");
	if (!fin)
	{
		cout << "Error! File is not found." << endl;
		system("pause");
		return 0;
	}
	fin >> s;
	while (fin >> s)
	{
		arr.push_back(s);
	}
	int i, j, max = 0;
	for (int i = 0; i < arr.size(); i++)
	{
		
		for (i = 0; i<s.length(); i++){
			if (s[i] == ' '){
				for (j = 1; ((i + j)<s.length()) && (s[i + j] == ' '); j++);
				max = (max<j) ? j : max;
			}
		}
	}

	cout  << max << endl;
	system("pause");
	return 0;
}
Anton12312 вне форума   Ответить с цитированием
Старый 11.05.2015, 17:31   #4
Stilet
Белик Виталий :)
Профессионал
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Адрес: Украина, Донецкая область, г. Краматорск
Сообщений: 57,840
Репутация: 6850
По умолчанию

Цитата:
я так и сделал
Нет. Ты сделал не так )
У тебя как минимум нет вытяжки элемента из вектора в переменную s в цикле прохода по вектору.
__________________
I'm learning to live...
Stilet вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти наибольшее количество идущих подряд одинаковых символов KNIGT Помощь студентам 4 20.11.2014 15:28
Pascal.Подсчитать наибольшее количество идущих подряд пробелов. esa1 Помощь студентам 0 30.05.2013 17:22
наибольшее количество идущих подряд цифр Alexandr- Помощь студентам 1 11.03.2013 23:02
Пусть дан текст. Найдите наибольшее количество цифр, идущих подряд. abakuz Помощь студентам 5 28.05.2011 17:08
Поиск строки, содержащей наибольшее количество пробелов Студент1000 Microsoft Office Word 3 28.05.2011 00:27


07:18.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.