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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.11.2014, 12:09   #1
axpehuct123
Пользователь
 
Регистрация: 09.04.2014
Сообщений: 12
По умолчанию Поиск в строке.

Нужно в предложении заменить все "Юра" на "Вася". Я смог реализовать если изначально забить в массив предложение.
Код:

#include <iostream>
using std::cout;
using std::cin;
using std::endl;
#include <string>
using std::string;

int main()
{
	setlocale(LC_ALL,"Russian");
	string array ="Вася Юра Николая";
	string str = "Вася";
	//getline(cin,array);
	array.replace(array.find("Юра"), 3, "Вася");
	cout << array << endl;
	system("pause");
	return 0;
}

Но как сделать, чтобы пользователь вводил предложение? Пробовал вот так, но выводит ошибку " abort() has been called". Что еще можно придумать?
Код:
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
#include <string>
using std::string;

int main()
{
	setlocale(LC_ALL,"Russian");
	string array;
	string str = "Вася";
	getline(cin,array);
	array.replace(array.find("Юра"), 3, "Вася");
	cout << array << endl;
	system("pause");
	return 0;
}

Последний раз редактировалось Stilet; 10.11.2014 в 12:32.
axpehuct123 вне форума Ответить с цитированием
Старый 10.11.2014, 12:34   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

На какой строке выбивает?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.11.2014, 12:36   #3
axpehuct123
Пользователь
 
Регистрация: 09.04.2014
Сообщений: 12
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
На какой строке выбивает?
если не ошибаюсь, то на этой:
array.replace(array.find("Юра"), 3, "Вася");
axpehuct123 вне форума Ответить с цитированием
Старый 10.11.2014, 13:19   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Напиши так:
Код:
	int i=array.find("Юра");
	if(i!=std::string::npos)
		array.replace(i, 3, "Вася");
чтоб убедиться что слово Юра есть в строке.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.11.2014, 13:58   #5
axpehuct123
Пользователь
 
Регистрация: 09.04.2014
Сообщений: 12
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Напиши так:
Код:
	int i=array.find("Юра");
	if(i!=std::string::npos)
		array.replace(i, 3, "Вася");
чтоб убедиться что слово Юра есть в строке.
Запуститься запустилось, но теперь не отображает русский.
axpehuct123 вне форума Ответить с цитированием
Старый 10.11.2014, 14:05   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Видимо потому что ввод с консоли неудачно делается. Я не спец по Си но проверь на латинице - все будет работать.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.11.2014, 14:10   #7
axpehuct123
Пользователь
 
Регистрация: 09.04.2014
Сообщений: 12
По умолчанию

На латинице все нормально. Спасибо)
axpehuct123 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск в строке. Блоер C# (си шарп) 13 20.08.2013 22:47
Поиск по строке kettanaito Общие вопросы Delphi 11 01.10.2011 15:29
Поиск в строке SsdD Общие вопросы Delphi 2 02.05.2010 10:35
поиск в строке Apis Помощь студентам 1 27.04.2010 22:30
Поиск в строке xspider Общие вопросы C/C++ 5 04.02.2009 21:46