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

Дана строка символов... - C++

Войти
Регистрация
Восстановить пароль
 
Mihail30rus
0 / 0 / 0
Регистрация: 27.03.2011
Сообщений: 26
15.06.2011, 12:14     Дана строка символов... #1
Помогите пожалуйста решить задачку на C++

Дана строка символов. Заменить в строке сочетание символов "ты" на "вы".

Заранее спасибо)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nursik77
 Аватар для Nursik77
273 / 233 / 21
Регистрация: 05.04.2011
Сообщений: 645
15.06.2011, 12:22     Дана строка символов... #2
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
main()
{
      char str[80];
      int i,L;
      printf("Vvedite stroku: ");
      gets(str);
      L=strlen(str);
      for(i=0;i<L;i++)
      if(str[i]=='т' && str[i+1]=='ы')
      str[i]='в'; str[i+1]='ы';
      puts(str);
      system("pause");
}
Gepar
 Аватар для Gepar
1175 / 531 / 20
Регистрация: 01.07.2009
Сообщений: 3,512
15.06.2011, 12:30     Дана строка символов... #3
C++
1
2
3
4
5
6
7
8
9
int main()
{
    setlocale(LC_ALL, "Russian");
    char a[]="лалалала ты лалала ты вы ты";
    for (int i=0;i<sizeof(a);i++)
     if (a[i]=='т' && a[i-1]==' ' && a[i+1]=='ы' && (a[i+2]==' '|| (i+2)<=sizeof(a)))
      a[i]='в';
    cout<<a;
}
Добавлено через 57 секунд
Nursik77, как-то странно ваш вариант работает ...
Jupiter
Каратель
Эксперт C++
6545 / 3965 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
15.06.2011, 12:37     Дана строка символов... #4
Gepar, да ваш тоже выходит за пределы массива
Gepar
 Аватар для Gepar
1175 / 531 / 20
Регистрация: 01.07.2009
Сообщений: 3,512
15.06.2011, 12:39     Дана строка символов... #5
Maxwe11, кде?
Nursik77
 Аватар для Nursik77
273 / 233 / 21
Регистрация: 05.04.2011
Сообщений: 645
15.06.2011, 12:39     Дана строка символов... #6
А шо в нем странного? Ну у меня девспп и я русские буквы подключил в системных настройках.
diagon
Higher
 Аватар для diagon
1921 / 1187 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
15.06.2011, 12:43     Дана строка символов... #7
Вариант для транслита
C++
1
2
3
4
5
6
7
8
9
#include <iostream>
#include <cstring>
int main(){
    char str[100];
    std::cin.getline(str,100);
    while (char * x = strstr(str,"ti")) *x = 'v';
    std::cout << str;
    return 0;
}
Возможно где-то и на русском работать будет.
Gepar
 Аватар для Gepar
1175 / 531 / 20
Регистрация: 01.07.2009
Сообщений: 3,512
15.06.2011, 12:46     Дана строка символов... #8
Nursik77, ну я ввёл 4 раза ты и оно в конце написало 4 раза ты.

Добавлено через 1 минуту
Хотя у меня тоже ещё одного или в условии не хватает, вот так будет правильнее:
C++
1
2
3
4
5
6
    setlocale(LC_ALL, "Russian");
    char a[]="ты ты ты ты";
    for (int i=0;i<sizeof(a);i++)
     if (a[i]=='т' && (a[i-1]==' ' || i-1<0) && a[i+1]=='ы' && (a[i+2]==' '|| (i+2)<=sizeof(a)))
      a[i]='в';
    cout<<a;
co6ak
15.06.2011, 12:46
  #9

Не по теме:

я тут сотое сообщение набью и все. тока тсс!

Nursik77
 Аватар для Nursik77
273 / 233 / 21
Регистрация: 05.04.2011
Сообщений: 645
15.06.2011, 12:49     Дана строка символов... #10
Gepar, я же говорю я сейчас на devcpp сижу и подключил русские буквы в сис.настройках.
А если у ТС его нет, то пущай
C
1
setlocale(LC_ALL, "Russian");
добавляет
Jupiter
Каратель
Эксперт C++
6545 / 3965 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
15.06.2011, 12:50     Дана строка символов... #11
Цитата Сообщение от Gepar Посмотреть сообщение
for (int i=0;i<sizeof(a);i++)
if (a[i]=='т' && a[i-1]
1-я итерация цикла
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.06.2011, 12:56     Дана строка символов...
Еще ссылки по теме:

Дана строка символов из цифр от 0 до 9. Составить новую строку... C++
Дана строка символов. Является ли заданная она палиндромом C++
Дана строка символов.Преобразовать строку, удалив из неё C++
C++ Дана строка из 20 символов. вывести из неё латинские строчные буквы
C++ Дана строка s, содержащая n символов s1, s2, . , sn,. Зеркальное отражение строки

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

Или воспользуйтесь поиском по форуму:
Gepar
 Аватар для Gepar
1175 / 531 / 20
Регистрация: 01.07.2009
Сообщений: 3,512
15.06.2011, 12:56     Дана строка символов... #12
Maxwe11, там как-бы или есть. В условии или можно поменять ещё местами и получиться так:
C++
1
if (a[i]=='т' && (i-1<0 || a[i-1]==' ') && a[i+1]=='ы' && ((i+2)<=sizeof(a) || a[i+2]==' '))
В этом случае уже точно не полезет за границы.
Yandex
Объявления
15.06.2011, 12:56     Дана строка символов...
Ответ Создать тему
Опции темы

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