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

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

Войти
Регистрация
Восстановить пароль
 
Chymardos
0 / 0 / 0
Регистрация: 29.01.2013
Сообщений: 78
#1

Замена символов в строке - C++

20.06.2013, 13:37. Просмотров 530. Ответов 7
Метки нет (Все метки)

Как заменить первый символ в строке "k" на "c" ? И последний "с" на "k" ? Вообще ума не приложу, помогите пожалуйста
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.06.2013, 13:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Замена символов в строке (C++):

Замена символов в строке - C++
Не получается сделать замену символов. Если в строке есть буква "H" мне нужно заменить её на "HOH". Вот код: #include <iostream> using...

Замена символов в строке - C++
Доброго времени суток. Есть такой код. char text="hello world"; Как заменить слово "world" в этой строке на слово "Mike". Искал в...

Замена символов в строке - C++
Помогите решить задачу. Дана строка. Нужно заменить символ "s" на "svb".

Замена символов в строке - C++
Всем здрасте! Вот тут есть задача: Дается 3 строки. Надо найти 2-ю строку в 1-ой и заменить ее на 3-ю. Мое решение не проходит по...

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

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

7
es_
203 / 203 / 46
Регистрация: 14.01.2013
Сообщений: 455
20.06.2013, 13:54 #2
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
26
27
28
29
30
31
32
33
#include "stdafx.h"
#include <iostream>
#include <cstdlib>
#include <math.h>
#include <string>
 
using namespace std;
 
int main()
{
        int i=0,dlina=0;  
        string str = "sjfkjhsajcsajkdfashfjdsahjhfadjhkh";
        dlina=str.length();
        for (i=0;i<dlina-1;i++)
        {
            if (str[i]=='c')
            {
                str[i]='k';
                break;
            }
        }
        for (i=dlina-1;i>-1;i--)
        {
            if (str[i]=='k')
            {
                str[i]='c';
                break;
            }
        }
        cout <<str<<endl;
        system("PAUSE > void");
        return 0;
}
0
Olivеr
412 / 408 / 13
Регистрация: 06.10.2011
Сообщений: 832
20.06.2013, 14:02 #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <string>
 
int main()
{
    std::string str;
    std::getline(std::cin, str);
    auto first_k = str.find_first_of("k");
    auto last_c = str.find_last_of("c");
    if ( first_k != std::string::npos  ) str[first_k] = 'c';
    if ( last_c != std::string::npos ) str[last_c] = 'k';
    std::cout << str;
    return 0;
}
0
MrGluck
Модератор
Эксперт CЭксперт С++
7419 / 4534 / 673
Регистрация: 29.11.2010
Сообщений: 12,304
20.06.2013, 14:04 #4
А можно еще свапнуть, при условии, что не бывает ситуаций, когда есть k, но нет с и наоборот.
0
Olivеr
412 / 408 / 13
Регистрация: 06.10.2011
Сообщений: 832
20.06.2013, 14:06 #5
es_, если строка "kkcc", то результат работы вашей программы будет "kkcc"

Цитата Сообщение от es_ Посмотреть сообщение
C++
1
2
dlina=str.length();
 for (i=0;i<dlina-1;i++)
Тогда так не учитывается последний символ строки. Надо так:
C++
1
for (i = 0; i < dlina; ++i)
0
Chymardos
0 / 0 / 0
Регистрация: 29.01.2013
Сообщений: 78
20.06.2013, 14:14  [ТС] #6
Пишу kkc выводит kcc, а должно ckk
0
Olivеr
412 / 408 / 13
Регистрация: 06.10.2011
Сообщений: 832
20.06.2013, 14:17 #7
Chymardos, http://ideone.com/uIK3Wx
1
es_
203 / 203 / 46
Регистрация: 14.01.2013
Сообщений: 455
20.06.2013, 14:38 #8
Olivеr, точно, я поторопился, да и ещё была одна ошибка.. В общем вот доделал:
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
26
27
28
29
30
31
32
33
34
#include "stdafx.h"
#include <iostream>
#include <cstdlib>
#include <math.h>
#include <string>
 
using namespace std;
 
int main()
{
        int i=0,j=0,dlina=0,ind=0,ind1=0;  
        string str = "kkcc";
        dlina=str.length();
        for (i=0,j=dlina;i<dlina,j>-1;i++,j--)
        {
            if (str[i]=='k' && ind==0)
            {
                str[i]='c';
                ind=1;
            }
            if (str[j]=='c' && ind1==0)
            {
                
                str[j]='k';
                ind1=1;
            }
            if (ind!=0 && ind1==1)
            {
                break;
            }
        }
        cout <<str<<endl;
        system("PAUSE > void");
        return 0;
0
20.06.2013, 14:38
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.06.2013, 14:38
Привет! Вот еще темы с ответами:

Замена в строке символов - C++
&quot;Заменить в строке все вхождения 'abc' на 'xy', а 'mm' на '1234'&quot;. Буду благодарна за оказанную помощь. проблема в том,что я не знаю как...

Замена символов в строке - C++
Здравствуйте!!! Помогите пожалуйсто решить задачку. Есть текстовый файл. Необходимо: - открыть файл - скопировать содержание...

Замена символов в строке с while - C++
Здравствуйте. Подскажите,пожалуйста,по задаче: Используйте серийный оператор for для замены всех символов строки на X. Как эти символы...

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


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

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

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