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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.12.2011, 16:12   #1
tema65
Пользователь
 
Регистрация: 23.12.2011
Сообщений: 22
По умолчанию Обрезать пробелы в строке с начала строки и с конца строки (C++)

Код HTML:
char *s=new char [1000];
	cout << "Введите строку: ";
	cin.ignore(1000, '\n');
	cin.getline(s,1000);
	int m = strlen( s );
        int i = 0, k=0;   
        for( int j=0; j<m; j++ )
        {
          if( s[j] == ' ' )
          {
		i++;
		for (k=j; k<m-1; k++)
                	s[k] = s[k+1];
		j--;

          }
        }
		for (;i>0;i--)
			s[n-i]=' ';
		cout << s << endl;
проблемка возникла может кто поможет. Данный код работает через раз. Подскажите, пожалуйста, что надо исправить или может другим вариантом решения этой задачи кто-нибудь поделится

Последний раз редактировалось tema65; 27.12.2011 в 02:37.
tema65 вне форума Ответить с цитированием
Старый 27.12.2011, 02:38   #2
tema65
Пользователь
 
Регистрация: 23.12.2011
Сообщений: 22
По умолчанию

....up........
tema65 вне форума Ответить с цитированием
Старый 27.12.2011, 10:06   #3
zotox
Форумчанин
 
Регистрация: 09.09.2008
Сообщений: 395
По умолчанию

tema65, никак не пойму, по условию задачи что должно на входе и на выходе получится?
zotox вне форума Ответить с цитированием
Старый 27.12.2011, 13:00   #4
tema65
Пользователь
 
Регистрация: 23.12.2011
Сообщений: 22
По умолчанию

Цитата:
Сообщение от zotox Посмотреть сообщение
tema65, никак не пойму, по условию задачи что должно на входе и на выходе получится?
вообще по заданию надо ввести строку символов, на выводе должна получится строка без пробелов. (это задание из лабораторной по алгоритмике)
звучит она так: "Обрезать пробелы в строке с начала строки и с конца строки"
код мне помогали писать, сам я не могу разобраться
tema65 вне форума Ответить с цитированием
Старый 28.12.2011, 04:56   #5
zotox
Форумчанин
 
Регистрация: 09.09.2008
Сообщений: 395
По умолчанию

Цитата:
ввести строку символов, на выводе должна получится строка без пробелов
Держите:
Код:
	char *s = new char[1000];
	strcpy(s, "privet kak dela");

	int i = strlen(s);
	for (int index = 0; index < i; index++)
	{
		if (s[index] == ' ')
		{
			for (int ch = index; ch < i; ch++)
			{
				s[ch] = s[ch + 1];
				/*
				 когда будет "s[strlen(s) + 1];" то ошибки не будет
				 так как на месте s[strlen(s) + 1] будет нулевой байт
				 а нулевой байт - это символ окончения строки
				*/
			}
		}
	}

	cout << s;
Ввод строки, надеюсь, сами допишите.
zotox вне форума Ответить с цитированием
Старый 28.12.2011, 09:25   #6
tema65
Пользователь
 
Регистрация: 23.12.2011
Сообщений: 22
По умолчанию

zotox, спасибо
tema65 вне форума Ответить с цитированием
Старый 28.12.2011, 13:24   #7
tema65
Пользователь
 
Регистрация: 23.12.2011
Сообщений: 22
По умолчанию

У меня возник еще один вопрос, может он покажется глупым, но я хочу полностью разобраться....
В коде выше в строчке
s[ch] = s[ch + 1]; // +1 как я понял кол-во пробелов, то есть тут "privet kak dela" обрезает по одному пробелу.
Если строка будет содержать 1,2,3... n кол-во пробелов как быть?
например " privet kak dela "
tema65 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не воспринимаются символы конца строки Sam Gold C++ Builder 1 18.05.2010 16:15
Написание полноценного программного комплекса совместно (от начала до конца) rick1177 Microsoft Office Excel 7 17.02.2010 11:54
ввод до конца строки. ssi Помощь студентам 0 27.01.2010 09:47
Перенести символа с начала строки в место перед запятой этой же строки. Zhiltsov Microsoft Office Excel 4 05.06.2009 13:10
Количество пробелов до конца строки Qv_1 Microsoft Office Word 8 01.06.2009 19:58