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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.01.2018, 11:02   #31
KAMLS
Форумчанин
 
Регистрация: 09.04.2017
Сообщений: 598
По умолчанию

Цитата:
Сообщение от Black Fregat Посмотреть сообщение
Зачем j внутри цикла ещё гонится вперед во вложенном цикле?
Дак менять же значение j надо чтобы проверять следующий символ в строке. В условии while не меняется значение j как в for.
KAMLS вне форума Ответить с цитированием
Старый 16.01.2018, 11:19   #32
KAMLS
Форумчанин
 
Регистрация: 09.04.2017
Сообщений: 598
По умолчанию

Сделал вот так. Стало как-то более-менее работать. Но по-разному.
Введешь 4 цифры после точки, убирает до двух. Введешь 6 цифр после точки, убирает до трёх...
Пока не понял.
Код:
#include<iostream>
#include<string>
#include<conio.h>
using namespace std;
int main()
{
	setlocale(LC_ALL, "rus");
	string word;
	char ch('9');
	int c =1;
	cout << "Введите строку: \n";
	cin >> word;
	int wlen = word.size();
	for (int j = 0; j < wlen; j++)
	{
		if (word[j] == '.')
		{
			++j;
			while (word[j] >='0' && word[j] <='9')
			{
				++j;
				if (word[j] >= '0' && word[j] <= '9')
				{
					--wlen;
						word.erase(j, 1);
				}
			}
		}
	}
	cout << word;
	_getch();
	return 0;
}
KAMLS вне форума Ответить с цитированием
Старый 16.01.2018, 11:19   #33
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,656
По умолчанию

Цитата:
Сообщение от KAMLS Посмотреть сообщение
Понимаете в чем дело. Если бы я умел писать как Вы, я пожалуй тоже написал бы за 10 мин. на хардкоде. Но весь то фокус в том и состоит, что я пока не могу как Вы.
Почему?
Да потому что недоразвито абстрактное мышление.
Отбрось всё лишнее, а то, что останется раздели на независимые подзадачи. В моём примере так и сделано:
  1. поиск подстроки ".dd"
  2. удаление цифр.
Причём удаление - это не посимвольный сдвиг всех данных в цикле, а однократная перезапись куска строки.
В итоге имеем готовую отлаженную независимую функцию, которую схавает любой компилятор С/С++.
Цитата:
Сообщение от KAMLS Посмотреть сообщение
Тот код который я написал, содержит ошибку. Вы можете подсказать где?
Этот код вообще может так работать, как тот который написали Вы?
Ну ты ваще! Я в С++ не копенгаген.
Кто из нас программист: ты или я?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 16.01.2018, 13:12   #34
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,520
По умолчанию

не тестировал, тут наркоманию эту собрал
Код:
#include<iostream>
#include<string>
#include<conio.h>
using namespace std;
int main()
{
	setlocale(LC_ALL, "rus");
	string word;
	char ch('9');
	int c =1;
	cout << "Введите строку: \n";
	cin >> word;
	int wlen = word.size();
	for (int j = 0; j < wlen - 2; j++) // этим циклом ищем точку, точка в конце строки не интересна, т.к. там нечего будет удалять поэтому -2
	{
		if (word[j] == '.')
		{
			++j;
			if (word[j] >= '0' && word[j] <= '9' &&
			word[j+1] >= '0' && word[j+1] <= '9') // если после точки идёт две цифры, тогда последующие цифры удаляем
			{
			  j += 2;
			  while (j < wlen && word[j] >='0' && word[j] <='9')
			  {
			    --wlen;
						word.erase(j, 1);
			  }
			}
		}
	}
	cout << word;
	_getch();
	return 0;
}
pu4koff на форуме Ответить с цитированием
Старый 16.01.2018, 13:24   #35
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,656
По умолчанию

Да чо вы все упоротые-то такие? Разделите задачу на 2 части - отладка займёт 3 минуты. А вы сношаетесь с этой лабой несчастной 5-е сутки уже, блть!

Извращенцы-чикатилы какие-то.
Обколюццо своей марихуяны и потом по подъездам сами знаете что.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 16.01.2018, 13:34   #36
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Какой результат для
Код:
f1.фа11a12sdf
?
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 16.01.2018, 13:48   #37
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,520
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
Да чо вы все упоротые-то такие? Разделите задачу на 2 части - отладка займёт 3 минуты. А вы сношаетесь с этой лабой несчастной 5-е сутки уже, блть!

Извращенцы-чикатилы какие-то.
Обколюццо своей марихуяны и потом по подъездам сами знаете что.
Не. Ну я то задачу с нуля за 10 минут сделаю нормально, но тогда ТС ничего там понимать не будет, я полностью всё за него сделаю и это не круто. Так хотя бы часть его кода там есть и он её знает
pu4koff на форуме Ответить с цитированием
Старый 16.01.2018, 13:53   #38
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,656
По умолчанию

Да чо вы все упоротые-то такие? Разделите задачу на 2 части - отладка займёт 3 минуты. А вы сношаетесь с этой лабой несчастной
Цитата:
Сообщение от pu4koff Посмотреть сообщение
Не. Ну я то задачу с нуля за 10 минут сделаю нормально, но тогда ТС ничего там понимать не будет, я полностью всё за него сделаю и это не круто. Так хотя бы часть его кода там есть и он её знает
Да я не об этом. Забей.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 16.01.2018, 14:05   #39
KAMLS
Форумчанин
 
Регистрация: 09.04.2017
Сообщений: 598
По умолчанию

))Сразу хочу сказать, что отношусь ко всем с благодарностью за участие и искренним уважением. Не думаю что кого-то обижу, если скажу, что эмоциональный выплеск участников меня изрядно развеселил))
Бывает иногда и сам так выплёскиваюсь когда кто-то не понимает то, что для меня элементарно)))
Я только учусь С++...
И реально научусь только через год-два. Скорее два. Реально отношусь к своим умственным возможностям.
Но если выучу, то поверьте, качественно.
KAMLS вне форума Ответить с цитированием
Старый 16.01.2018, 14:12   #40
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,656
По умолчанию

Цитата:
Сообщение от KAMLS Посмотреть сообщение
Но если выучу, то поверьте, качественно.
Я тебя огорчу: фраза "выучить язык программирования" является бессмысленным набором слов. Это, блть, не таблица умножения и не стишок Пушкина.

Тут думать надо. И постоянно, ПОСТОЯННО, БТЬ, экспериметировать!!!111
------------
Чтобы найти в строке подстроку и/или удалить кусок строки "от сих до сих", нужно знать только матчасть: что такое сишная строка символов, как она хранится в памяти. И ВСЁ!
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...

Последний раз редактировалось min@y™; 16.01.2018 в 14:15.
min@y™ вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi удаление символа из строки! sokolik-117845 Помощь студентам 1 09.04.2012 14:32
Удаление строки до определенного символа glebast Помощь студентам 25 02.03.2012 01:30
Удаление символа из строки Alex1991 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 23.11.2010 20:58
Удаление символа из строки forsaken66 Общие вопросы C/C++ 4 06.11.2009 11:33
удаление символа окончания строки Xozer SQL, базы данных 1 07.02.2008 12:19