Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Mihail30rus
0 / 0 / 0
Регистрация: 27.03.2011
Сообщений: 26
#1

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

15.06.2011, 12:14. Просмотров 952. Ответов 11
Метки нет (Все метки)

Помогите пожалуйста решить задачку на C++

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

Заранее спасибо)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.06.2011, 12:14
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Дана строка символов... (C++):

Дана строка символов. Проверьте,является ли данная строка палиндромом
Парни нужна помощь,нужен код решения этой задачи на языке с++. Дана строка...

Дана строка символов. Подсчитать общее число вхождений символов .,+ в строку
Здравствуйте. Дана строка символов. Подсчитать общее число вхождений символов...

Дана строка символов. Подсчитать общее число вхождений символов
Привет всем. Дана строка символов. Подсчитать общее число вхождений символов...

Дана строка, состоящая из M попарно различных символов. Вывести все перестановки символов данной строки.
Дана строка, состоящая из M попарно различных символов. Вывести все...

Дана строка символов до точки. Составить программу, проверяющую, является ли данная строка палиндромом, т. е. читается ли она слева направо и справа н
Дана строка символов до точки. Составить программу, проверяющую, является ли...

Дана строка символов. Изменить строку – во всех словах, имеющих нечетное количество символов, средний символ удалить.
Дана строка символов. Изменить строку – во всех словах, имеющих нечетное...

11
Nursik77
273 / 233 / 30
Регистрация: 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");
}
1
Gepar
1181 / 537 / 77
Регистрация: 01.07.2009
Сообщений: 3,517
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, как-то странно ваш вариант работает ...
0
Jupiter
Каратель
Эксперт С++
6568 / 3989 / 400
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
15.06.2011, 12:37 #4
Gepar, да ваш тоже выходит за пределы массива
0
Gepar
1181 / 537 / 77
Регистрация: 01.07.2009
Сообщений: 3,517
15.06.2011, 12:39 #5
Maxwe11, кде?
0
Nursik77
273 / 233 / 30
Регистрация: 05.04.2011
Сообщений: 645
15.06.2011, 12:39 #6
А шо в нем странного? Ну у меня девспп и я русские буквы подключил в системных настройках.
0
diagon
Higher
1937 / 1203 / 120
Регистрация: 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;
}
Возможно где-то и на русском работать будет.
0
Gepar
1181 / 537 / 77
Регистрация: 01.07.2009
Сообщений: 3,517
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;
0
co6ak
15.06.2011, 12:46
  #9

Не по теме:

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

0
Nursik77
273 / 233 / 30
Регистрация: 05.04.2011
Сообщений: 645
15.06.2011, 12:49 #10
Gepar, я же говорю я сейчас на devcpp сижу и подключил русские буквы в сис.настройках.
А если у ТС его нет, то пущай
C
1
setlocale(LC_ALL, "Russian");
добавляет
0
Jupiter
Каратель
Эксперт С++
6568 / 3989 / 400
Регистрация: 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-я итерация цикла
0
Gepar
1181 / 537 / 77
Регистрация: 01.07.2009
Сообщений: 3,517
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]==' '))
В этом случае уже точно не полезет за границы.
0
15.06.2011, 12:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.06.2011, 12:56
Привет! Вот еще темы с решениями:

Дана строка символов, пользователь вводит комбинацию символов проверить сколько раз встечается эта комбинация в строке.
Дана строка символов, пользователь вводит комбинацию символов проверить сколько...

Дана строка символов
Помогите написать лабу. Дана строка символов. Распечатать слова, отличные от...

Дана строка из 32 символов
Дана строка из 32 символов, содержащая только символы '0' и '1'. 1)Строка...

Дана строка символов
Дана строка символов введенных с клавиатуры. Определить является ли введенный...


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

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

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