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

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

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

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

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

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

Аргумент метода at() - это местонахождение символа в строке.
KAMLS вне форума Ответить с цитированием
Старый 15.01.2018, 19:09   #22
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

И?
Он вам вернул символ, а вы с ним ничего не сделали. В чем смысл этой строки?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 15.01.2018, 19:17   #23
KAMLS
Форумчанин
 
Регистрация: 09.04.2017
Сообщений: 598
По умолчанию

Я уже сделал вот так.
Код:
#include<iostream>
#include<string>
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 (ch>='0' && ch<='9')
			{
				j++;
				if (ch >= '0' && ch <= '9')
				{
					if (c >= 2)
						word.erase(j, 1);
					++c;
				}
			}
		}
	}
	return 0;
}
Но он теперь ругается на ++с;
В скриншоте видно.
Изображения
Тип файла: png Скриншот 2018-01-15 19_15_02.png (50.9 Кб, 130 просмотров)
KAMLS вне форума Ответить с цитированием
Старый 15.01.2018, 19:28   #24
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

В Ch word[j] для приличия передавайте хотя бы. Длину строки надо уменьшить после удаления символа, это уже должно подсказать что while предпочтительней for
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.

Последний раз редактировалось Aleksandr H.; 15.01.2018 в 19:31.
Aleksandr H. вне форума Ответить с цитированием
Старый 15.01.2018, 19:35   #25
KAMLS
Форумчанин
 
Регистрация: 09.04.2017
Сообщений: 598
По умолчанию

Сделал вот так. Всё вроде работает, но не дорабатывает. удаляет только один символ. Второй.
Други не хочет, пробовал разное.
Код:
#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')
				{
					if (c >= 2)
						word.erase(j, 1);
					++c;
				}
			}
		}
	}
	cout << word;
	_getch();
	return 0;
}
Изображения
Тип файла: jpg Скриншот 2018-01-15 19_33_46.jpg (41.1 Кб, 128 просмотров)
KAMLS вне форума Ответить с цитированием
Старый 15.01.2018, 20:16   #26
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

так тоже не?
Код:
if (word[j] >= '0' && word[j] <= '9')
{
	if (c > 2)	word.erase(j, 1);
	++c;
}
++j;
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.

Последний раз редактировалось Aleksandr H.; 15.01.2018 в 21:19.
Aleksandr H. вне форума Ответить с цитированием
Старый 16.01.2018, 06:55   #27
KAMLS
Форумчанин
 
Регистрация: 09.04.2017
Сообщений: 598
По умолчанию

Цитата:
Сообщение от Aleksandr H. Посмотреть сообщение
так тоже не?
Код:
if (word[j] >= '0' && word[j] <= '9')
{
	if (c > 2)	word.erase(j, 1);
	++c;
}
++j;
Если так, то вот так (на скриншоте)
Изображения
Тип файла: png Скриншот 2018-01-16 06_53_59.png (92.5 Кб, 126 просмотров)
KAMLS вне форума Ответить с цитированием
Старый 16.01.2018, 08:47   #28
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,772
По умолчанию

Зачем j внутри цикла ещё гонится вперед во вложенном цикле?
Black Fregat вне форума Ответить с цитированием
Старый 16.01.2018, 10:15   #29
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,656
По умолчанию

Цитата:
Сообщение от KAMLS Посмотреть сообщение
Программа должна удалять все цифры после второй которые начинаются после точки. До следующего символа не цифры.
Во вы заморачиваетесь, я рыдаю... Написал на хардкоре за 10 минут, блть.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 16.01.2018, 11:00   #30
KAMLS
Форумчанин
 
Регистрация: 09.04.2017
Сообщений: 598
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
Во вы заморачиваетесь, я рыдаю... Написал на хардкоре за 10 минут, блть.
Понимаете в чем дело. Если бы я умел писать как Вы, я пожалуй тоже написал бы за 10 мин. на хардкоде. Но весь то фокус в том и состоит, что я пока не могу как Вы.
Тот код который я написал, содержит ошибку. Вы можете подсказать где?
Этот код вообще может так работать, как тот который написали Вы?
KAMLS вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 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