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

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

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

Заменитье буквы "a" и "o" в слове на "A" и "O". - C++

05.12.2011, 14:55. Просмотров 555. Ответов 11
Метки нет (Все метки)

Заменитье буквы "a" и "o" в слове на "A" и "O".
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.12.2011, 14:55     Заменитье буквы "a" и "o" в слове на "A" и "O".
Посмотрите здесь:

C++ После каждой буквы "о" в слове вставить сочетание "ля"
C++ Проверить, есть ли в слове приставка "пре" или "пре".
C++ Вычисление суммы позиций на которых в слове Х стоят буквы "в" и "п"
C++ В каждом слове текста замените "а" на букву "е"
C++ После каждой буквы "о" в слове вставьте сочетание "ля
Error C2361: пропуск инициализации "Height" из-за метки "default" C++
Во введённой строке требуется поменять все буквы "а" на "i", и наоборот C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Виктор_Сен
32 / 25 / 1
Регистрация: 01.08.2011
Сообщений: 176
05.12.2011, 15:12     Заменитье буквы "a" и "o" в слове на "A" и "O". #2
C++
1
2
3
4
5
6
7
8
9
void replace(char* myWord)
{
    while(myWord)
    {
        myWord=myWord=='a'?'A':myWord;
        myWord=myWord=='о'?'О':myWord;
        myWord++;
    }
}
ForEveR
Модератор
Эксперт С++
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
05.12.2011, 15:32     Заменитье буквы "a" и "o" в слове на "A" и "O". #3
Виктор_Сен, Эм. Вы представляете что вы сделали?
easybudda
Эксперт С++
9412 / 5435 / 917
Регистрация: 25.07.2009
Сообщений: 10,428
05.12.2011, 15:33     Заменитье буквы "a" и "o" в слове на "A" и "O". #4
Цитата Сообщение от Виктор_Сен Посмотреть сообщение
while(myWord)
Указатели за Вас Страуструпп разыменовывать будет?
fasked
Эксперт C++
4932 / 2512 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
05.12.2011, 15:38     Заменитье буквы "a" и "o" в слове на "A" и "O". #5
Цитата Сообщение от ForEveR Посмотреть сообщение
Вы представляете что вы сделали?
Вечный двигатель?
Shaykemelov
9 / 9 / 2
Регистрация: 14.11.2011
Сообщений: 27
05.12.2011, 15:40     Заменитье буквы "a" и "o" в слове на "A" и "O". #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include<iostream>
#include<string>
using namespace std;
int main()
{
    string s;
    cin>>s;
    for(int i=0;i<s.length();i++)
    {
            if(s[i]=='a')s[i]='A';
            if(s[i]=='o')s[i]='O';
    }
    cout<<s;
    system("pause");
    return 0;
}
Виктор_Сен
32 / 25 / 1
Регистрация: 01.08.2011
Сообщений: 176
05.12.2011, 15:41     Заменитье буквы "a" и "o" в слове на "A" и "O". #7
Ой простите:
C++
1
2
3
4
5
6
7
8
9
void replace(char* myWord)
{
    while(*myWord)
    {
        *myWord=*myWord=='a'?'A':*myWord;
        *myWord=*myWord=='о'?'О':*myWord;
        myWord++;
    }
}
fasked
Эксперт C++
4932 / 2512 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
05.12.2011, 15:47     Заменитье буквы "a" и "o" в слове на "A" и "O". #8
Цитата Сообщение от Виктор_Сен Посмотреть сообщение
*myWord=*myWord=='a'?'A':*myWord;
Это как-то нелепо выглядит. Тоже самое, что написать:
C
1
2
3
4
if (*p == 'a')
    *p = 'A';
else
    *p = 'a';
Виктор_Сен
32 / 25 / 1
Регистрация: 01.08.2011
Сообщений: 176
05.12.2011, 15:54     Заменитье буквы "a" и "o" в слове на "A" и "O". #9
Цитата Сообщение от fasked Посмотреть сообщение
Это как-то нелепо выглядит. Тоже самое, что написать:
C
1
2
3
4
if (*p == 'a')
    *p = 'A';
else
    *p = 'a';
У вас тут ошибка: по вашей логике, если, скажем, символ будет 'п', то вместо 'п' в строку запишется 'а', а у меня если символ не равен 'а' то просто запишется тот-же самый символ.
fasked
Эксперт C++
4932 / 2512 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
05.12.2011, 15:59     Заменитье буквы "a" и "o" в слове на "A" и "O". #10
Цитата Сообщение от Виктор_Сен Посмотреть сообщение
У вас тут ошибка: по вашей логике, если, скажем, символ будет 'п', то вместо 'п' в строку запишется 'а', а у меня если символ не равен 'а' то просто запишется тот-же самый символ.
Я исправился. А моя ошибка показывает насколько конструкция нелепа
C
1
2
3
4
if (*p == 'a')
    *p = 'A';
else
    *p = *p;
easybudda
Эксперт С++
9412 / 5435 / 917
Регистрация: 25.07.2009
Сообщений: 10,428
05.12.2011, 16:24     Заменитье буквы "a" и "o" в слове на "A" и "O". #11
Цитата Сообщение от fasked Посмотреть сообщение
Это как-то нелепо выглядит. Тоже самое, что написать:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
    
void ao2upper(char * s) { 
    if ( *s ) { 
        *s = ( *s == 'a' ) ? 'A' : ( *s == 'o' ) ? 'O' : *s;
        ao2upper(++s);
    }
}
 
int main(void){
    char s[] = "bla bla bla o go go";
    
    printf("%s\n", s);
    ao2upper(s);
    printf("%s\n", s);
    
    return 0;
}
но выглядит действительно странновато
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.12.2011, 17:07     Заменитье буквы "a" и "o" в слове на "A" и "O".
Еще ссылки по теме:

"Красный Тигр" vs. "Желтый Заяц". А каким будет 3005 год? C++
Замените все буквы "р" на сочетание "ку" C++
"Чудеса типа float" или "Куда девалась информация?" C++
Все буквы "е" в строке заменить на "и" C++
Нужно найти слова которые встречаются в буквы "a" "z" C++

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

Или воспользуйтесь поиском по форуму:
Виктор_Сен
32 / 25 / 1
Регистрация: 01.08.2011
Сообщений: 176
05.12.2011, 17:07     Заменитье буквы "a" и "o" в слове на "A" и "O". #12
Просто я хотел короче записать, но если сравнить *myWord=(*myWord=='a')?'A':*myWord; и if(s[i]=='a')s[i]='A'; то видимо преимущества от записи нет.
Yandex
Объявления
05.12.2011, 17:07     Заменитье буквы "a" и "o" в слове на "A" и "O".
Ответ Создать тему
Опции темы

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