Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Димон19
1 / 1 / 0
Регистрация: 13.12.2010
Сообщений: 41
#1

Строки (ввести строку разделенную пробелами, и в словах которые оканчиваются на АВС заменить СС) - C++

24.06.2013, 01:09. Просмотров 1000. Ответов 14
Метки нет (Все метки)

ввести строку разделенную пробелами, и в словах которые оканчиваются на АВС заменить СС... помогите просто определить 3 последнии буквы,и как менять их)) просто завтра экзамен)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.06.2013, 01:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Строки (ввести строку разделенную пробелами, и в словах которые оканчиваются на АВС заменить СС) (C++):

В тех словах, которые оканчиваются сочетанием букв ing, заменить окончание на ed - C++
Дан текст. Группы символов, разделенные пробелами (одним или несколькими) и не содержащие пробелы внутри себя, будем называть словами. В...

В тех словах, которые оканчиваются сочетанием букв ing, заменить это окончание на ed. - C++
Дан текст. Группы символов, разделенные пробелами (одним или несколькими) и не содержащие пробелы внутри себя, будем называть словами. В...

Ввести строку с пробелами - C++
Как ввести строук с пробелами? cin.getline работает через одно место. Если знаете, как с ним сделать, то напишите, пожалуйста, чтобы...

Как ввести строку с пробелами - C++
char s1; char s2; int a; cin.getline(s1,50); cin>>a; cin.getline(s2,50); Не вводит...

Как на C++ ввести с консоли строку с пробелами в тип string? - C++
Нужно создать программу определяющую является ли строка палиндромом(т.е. одинаково пишется как слева направо так и справа налево)....

Удалить из строки слова, которые оканчиваются на гласную - C++
Удалить из заданой строки все слова оканчивающиеся на гласную букву. Напишите пожалуйста! Добавлено через 1 час 56 минут Вот...

14
Демик
9 / 9 / 0
Регистрация: 19.04.2012
Сообщений: 114
24.06.2013, 01:23 #2
строка какого типа не указано?
0
Димон19
1 / 1 / 0
Регистрация: 13.12.2010
Сообщений: 41
24.06.2013, 01:25  [ТС] #3
неа...
0
Демик
9 / 9 / 0
Регистрация: 19.04.2012
Сообщений: 114
24.06.2013, 01:33 #4
Что на что у тебя заменить надо?
0
Димон19
1 / 1 / 0
Регистрация: 13.12.2010
Сообщений: 41
24.06.2013, 01:38  [ТС] #5
дано например 5 слов,и слова которые оканчиваются на АВС заменить символы АВС на сс..
adasdaabc abcdfdf asdabc должно быть так adasdaсс abcdfdf asdсс
0
Демик
9 / 9 / 0
Регистрация: 19.04.2012
Сообщений: 114
24.06.2013, 01:47 #6
Тюю, легкотня, щас 5 сек.

Добавлено через 5 минут
Пусть у нас строка массив char*.
Вот ввел ты строку, получился у тебя массив чаров str[n]. Сначала ты ищещ длинну строки:
C++
1
2
3
4
5
int size = 0;
while(str[size]!= '\0')
{
    i++;
}
Нашел, дальше ты должен разбить предложение на слова и проверить последнии 3 символа слова и заменить на нужное если символы совпадают, но как ты наверное заметил, у нас появляется лишний пробел, его можно убрать, но мне лень = ), оставляю это на тебя = ):
C++
1
2
3
4
5
6
7
8
9
for(int i = 0; i< size; i++)
{
    if(str[i] == ' ' && str[i-1] == 'c' && str[i-2] == 'b' && str[i-3] == 'a')
      {
           str[i-1]=' ';
             str[i-2]='c';
             str[i-3]='c';
      }
}
0
MrGluck
Модератор
Эксперт CЭксперт С++
7488 / 4603 / 691
Регистрация: 29.11.2010
Сообщений: 12,589
24.06.2013, 01:49 #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <sstream>
#include <string>
#include <algorithm>
#include <iterator>
 
int main()
{
    std::string str;
    std::getline(std::cin, str);
    std::istringstream ist(str);
    typedef std::istream_iterator<std::string> input_str;
    std::for_each(input_str(ist), input_str(), [](std::string s)
    {
        std::string::size_type pos = s.rfind("ABC");
        if (pos != std::string::npos && pos == s.length() - 3)
            s.replace(pos, 3, "CC");
        std::cout << s << " ";
    } );
}
1
Демик
9 / 9 / 0
Регистрация: 19.04.2012
Сообщений: 114
24.06.2013, 01:58 #8
@MrGluck, так не честно = )
0
Димон19
1 / 1 / 0
Регистрация: 13.12.2010
Сообщений: 41
24.06.2013, 01:59  [ТС] #9
блин не получается,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
 
int main() {
    char str[n]
 
    printf("Enter string: ");
    scanf("%s", n);
  
    getchar(n);
    int size = 0;
while(str[size]!= '\0')
{
    i++;
}
for(int i = 0; i< size; i++)
{
    if(str[i] == ' ' && str[i-1] == 'c' && str[i-2] == 'b' && str[i-3] == 'a')
      {
           str[i-1]=' ';
             str[i-2]='c';
             str[i-3]='c';
      }
}
испарвте пожалуйста
0
Демик
9 / 9 / 0
Регистрация: 19.04.2012
Сообщений: 114
24.06.2013, 02:00 #10
@Димон19, тебе @MrGluck, дал гораздо лучший вариант = )
0
Димон19
1 / 1 / 0
Регистрация: 13.12.2010
Сообщений: 41
24.06.2013, 02:06  [ТС] #11
у него очень сложно))) я там ни слова не понял..пасиб

Добавлено через 3 минуты
там я там ничего не понял))) хотя спасибо буду разбираться)) но твой понятней,помоги доделать))

Добавлено через 1 минуту
фвфв
0
Демик
9 / 9 / 0
Регистрация: 19.04.2012
Сообщений: 114
24.06.2013, 02:18 #12
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <stdio.h>
 
int main(int argс, char* argv[]) 
{
    char* str[];
 
    printf("Enter string: ");
    getline(str);
 
    int size = 0;
while(str[size]!= '\0')
{
    i++;
}
for(int i = 0; i< size; i++)
{
    if(str[i] == ' ' && str[i-1] == 'c' && str[i-2] == 'b' && str[i-3] == 'a')
      {
           str[i-1]=' ';
             str[i-2]='c';
             str[i-3]='c';
      }
}
return 0;
}
Должно заработать.
Все таки советую разобраться с вариантом MrGluck, так как у него сделано гораздо лучше.
0
MrGluck
Модератор
Эксперт CЭксперт С++
7488 / 4603 / 691
Регистрация: 29.11.2010
Сообщений: 12,589
24.06.2013, 02:18 #13
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <sstream>
#include <string>
#include <algorithm>
#include <iterator>
 
int main()
{
    std::string str; // тупо строка
    std::getline(std::cin, str); // считываем до нажатия Enter
    std::istringstream ist(str); // инициализируем объект std::istringstream нашей строкой (по своей сути это буфер, из него можно извлекать информацию также, как если бы мы работали с объектом std::cin)
    typedef std::istream_iterator<std::string> input_str; // создаем синоним для итератора, имеющего в качестве value_type объект std::string. Т.е. грубо говоря как указатель на объект std::string
    std::for_each(input_str(ist), input_str(), [](std::string s) // пока удается успешно извлечь из буфера (пока он не пуст), у нас получается инициализировать итератор новой строкой. Пока не получили пустой конструктор итератора. Все объекты воспринимаем как std::string s
    {
        std::string::size_type pos = s.rfind("ABC"); // узнаем позицию вхождения комбинации ABC в строку. поиск ведем с конца
        if (pos != std::string::npos && pos == s.length() - 3) // если данная комбинация существует и указывает на третий символ с конца
            s.replace(pos, 3, "CC"); // начиная с этой позиции заменяем 3 далее идущих символа на комбинацию CC
        std::cout << s << " "; // выводим полученную строку на экран
    } );
}
что-нибудь еще не ясно?
2
Димон19
1 / 1 / 0
Регистрация: 13.12.2010
Сообщений: 41
24.06.2013, 02:37  [ТС] #14
он выводит туже строку он не поменял последние символы((

Добавлено через 4 минуты
не работает))
0
MrGluck
Модератор
Эксперт CЭксперт С++
7488 / 4603 / 691
Регистрация: 29.11.2010
Сообщений: 12,589
24.06.2013, 02:54 #15
Строки (ввести строку разделенную пробелами, и в словах которые оканчиваются на АВС заменить СС)
0
24.06.2013, 02:54
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.06.2013, 02:54
Привет! Вот еще темы с ответами:

В словах, которые заканчиваются сочетанием букв ing, заменить это окончание на ed - C++
Вводит символьный массив из 16 символов. Группы символов, разделенные пробелами. В этих словах, которые заканчиваются сочетанием букв ing,...

Вывести только те слова из строки, которые начинаются и оканчиваются на заданную букву - C++
Вывести только те слова сообщения, которые начинаются и оканчиваются на заданную букву. Где у меня проблема? #include...

Ввести строку. Выдать все слова, которые имеют длину больше, чем длина последнего слова строки - C++
ввести строку. на печать, выдать все слова, которые имеют длину больше, чем длина последнего слова строки.

Из строки распечатать только те слова, которые начинаются и оканчиваются одной и тоже буквой - C++
Здравствуйте, помогите пожалуйста с реализацией программы. Из заданной текстовой строки распечатать только те слова, которые начинаются и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru