Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

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

Из файла считывается текст и выводится наибольшее количество пробелов, что идут подряд. Помогите, как это реализовать, где у мея ошибки? Программа не работает правильно
Желательно чтобы был именно 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, 11:26   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Код:
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, 16:19   #3
Anton12312
Новичок
Джуниор
 
Регистрация: 11.05.2015
Сообщений: 2
По умолчанию

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, 16:31   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

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


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти наибольшее количество идущих подряд одинаковых символов KNIGT Помощь студентам 4 20.11.2014 14: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