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

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

Восстановить пароль Регистрация
 
Chymardos
0 / 0 / 0
Регистрация: 29.01.2013
Сообщений: 78
20.06.2013, 13:37     замена символов в строке #1
Как заменить первый символ в строке "k" на "c" ? И последний "с" на "k" ? Вообще ума не приложу, помогите пожалуйста
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.06.2013, 13:37     замена символов в строке
Посмотрите здесь:

C++ Замена в строке символов
Замена символов в строке C++
Замена символов в строке C++
C++ Замена символов в строке
C++ Замена символов в строке
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
es_
 Аватар для es_
198 / 198 / 46
Регистрация: 14.01.2013
Сообщений: 446
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;
}
Olivеr
 Аватар для Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
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;
}
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4927 / 2670 / 243
Регистрация: 29.11.2010
Сообщений: 7,427
20.06.2013, 14:04     замена символов в строке #4
А можно еще свапнуть, при условии, что не бывает ситуаций, когда есть k, но нет с и наоборот.
Olivеr
 Аватар для Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
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)
Chymardos
0 / 0 / 0
Регистрация: 29.01.2013
Сообщений: 78
20.06.2013, 14:14  [ТС]     замена символов в строке #6
Пишу kkc выводит kcc, а должно ckk
Olivеr
 Аватар для Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
20.06.2013, 14:17     замена символов в строке #7
Chymardos, http://ideone.com/uIK3Wx
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.06.2013, 14:38     замена символов в строке
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
es_
 Аватар для es_
198 / 198 / 46
Регистрация: 14.01.2013
Сообщений: 446
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;
Yandex
Объявления
20.06.2013, 14:38     замена символов в строке
Ответ Создать тему
Опции темы

Текущее время: 16:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru