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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.03.2015, 18:13   #1
jinos
Пользователь
 
Регистрация: 12.11.2014
Сообщений: 20
По умолчанию Как продублировать букву в строке C++

Помогите пожалуйста с задачей на строки
Вот условие :
Вывести фамилию имя и отчество как одно текстовое данное.
Определить его длину и количество букв "a" в нем.
Все буквы i в имени продублировать.

Вот код
Код:
#include <iostream>
#include <string>
#include <sstream>
#include <algorithm>
#include <cstdlib>
#include <conio.h>
#include <locale.h>

using namespace std;

int main()
{
setlocale(LC_ALL, "Russian");//Подключение русского языка


cout << "Введите ФИО\n";
string str, family, name;
getline(cin, str);

stringstream s;
s << str;
s >> family >> name;

cout << "Длина строки: " << str.size() << endl;
cout << "Количество букв \"а\" в строке: " << count((str.begin(), str.end(), 'a') + (str.begin(), str.end(), 'A'))  << endl;
cout << "Фамилия: " << family << endl;
cout << "Количество букв в имени: " << name.size() << endl;
cout << str.replace(str.begin(), str.end(), 'i', 'ii'); //тут должна выводится заменённая строка

_getch();
}
Не получается продублировать букву i

Последний раз редактировалось Stilet; 14.03.2015 в 11:18.
jinos вне форума Ответить с цитированием
Старый 13.03.2015, 19:51   #2
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Не получается продублировать букву i
а ты выводи строку посимвольно и дублируй символ i только при выводе.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 13.03.2015, 20:44   #3
Aleksander550
Форумчанин
 
Регистрация: 07.01.2014
Сообщений: 124
По умолчанию

как-то так
Код:
#include <iostream>
#include <string>

using namespace std;

int main(){
 string fio;
 char symvol;
 int x, count = 0, space = 0, j;
 cout << "\nInput FIO:\n";
 getline(cin, fio);//ввести ФИО
 cout << "\nInput search symvol: ";
 cin >> symvol;//по задаию 'a'
 cout << "\nInput x: ";
 cin >> x;//будет отчет по имени
 cout << "\n\nFIO size = " << fio.size();//длина ФИО с пробеами 
 //сколько раз повторяется symvol
 for (int i = 0; i < fio.size(); i++){
	if (fio[i] == symvol)
		++count;
 }
 cout << "\nRataton '" << symvol << "' = " << count << endl;
 //дублирвния чимвла Х в имени
 //где заканчивается фамилия
 for (int i = 1; i < fio.size() ; i++){
	if (fio[i] == ' '){
		space = i;
		break;
	}
 }
 //напечатать фамилию
 for (int i = 0; i <= space; i++)
	cout << fio[i];

 symvol = fio[x + space]; // или fio[x + space -1] если отчет от нуля
 //исковеркать имя
 for (j = space + 1; ( (fio[j] != ' ') && (j < fio.size()) ); j++){
	cout << fio[j];
	if (fio[j] == symvol)
		cout << symvol;
 }
 //напечатать отчество
 for (int i = j; i < fio.size(); i++)
	cout << fio[i];
 
 cout << endl;
 return 0;
}
#define TRUE FALSE //счастливой отладки
Aleksander550 вне форума Ответить с цитированием
Старый 15.03.2015, 16:09   #4
jinos
Пользователь
 
Регистрация: 12.11.2014
Сообщений: 20
По умолчанию

Спасибо большое
jinos вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти букву в строке antohaha JavaScript, Ajax 1 01.05.2012 11:31
Паскаль.Как рассматривать каждую букву в строке в отдельности? Soffi Помощь студентам 1 18.03.2011 23:23
Как в паскале рассматривать каждую букву в строке по отдельности? Soffi Помощь студентам 4 18.03.2011 18:49
Как определить на какую букву начинаются слова в строке??? Telec Общие вопросы C/C++ 3 21.04.2010 03:10
Как определить на какую букву начинаются слова в строке??? Telec Помощь студентам 1 18.04.2010 20:28