0 / 0 / 0
Регистрация: 20.03.2014
Сообщений: 37
1

Поменять каждую согласную русскую букву на цифру «8», а каждую гласную – на символ «–»

10.06.2014, 18:04. Показов 2046. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задание: Поменять каждую согласную русскую букву на цифру «8», а каждую гласную – на символ «–»
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
#include "stdafx.h"
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <locale.h>
#include<iostream>
int main(void)
{
setlocale(LC_ALL,"rus");
using namespace std;
char string[256];
int i;
char t;
//bool good = true; //Определяет является ли введенная строка идентификатором
printf("Введите строку: ");
scanf("%s",string);
for(int i=0; strlen(string); i++) 
if((string[i] >= 'B', 'C', 'D', 'F', 'G', 'H', 'J', 'K', 'L', ' M', 'N', 'P', 'Q', 'R', ' S', 'T', 'V', 'W', 'X', 'Z')|| (string[i] = 'b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'l', ' m', 'n', 'p', 'q', 'r', ' s', 't', 'v', 'w', 'x', 'z'))
{
string[i]='8';
}
else
if((string[i] >= 'A', 'E', 'I', 'O', 'U', 'Y')||( string[i] = 'a', 'e', 'i', 'o', 'u', 'y'))
{
string[i]='-';
}
printf("Получившаяся строка: %s",string[i]);
return 0;
getch();
}
Выдает ошибку: Необработанное исключение в "0x772b15ee" в "***.exe": 0xC0000005: Access violation.
Подскажите, пожалуйста, где не правильно....
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.06.2014, 18:04
Ответы с готовыми решениями:

Поменять каждую согласную русскую букву на цифру «8», а каждую гласную – на символ «–»
Ввести строку с клавиатуры. Вывести средний символ строки. Поменять каждую согласную русскую букву...

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

В заданном тексте заменить каждую гласную букву символом ‘*’, а согласную – символом ‘+’,
В заданном тексте заменить каждую гласную букву символом ‘*’, а согласную – символом ‘+’, ...

Каждую гласную букву в тексте заменить на символ "*"
В конце, когда надо напечатать изменений текст, печает только последнее введеное слово uses crt;...

4
5496 / 4891 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
10.06.2014, 18:38 2
Цитата Сообщение от Leert Посмотреть сообщение
for(int i=0; strlen(string); i++)
Что за условие работы цикла?

Добавлено через 1 минуту
C++
1
for(int i=0; i < strlen(string); i++)
0
0 / 0 / 0
Регистрация: 20.03.2014
Сообщений: 37
10.06.2014, 18:40  [ТС] 3
Цитата Сообщение от alsav22 Посмотреть сообщение
for(int i=0; i < strlen(string); i++)
теперь он выводит: Run-Time Check Failure #3 - The variable 'i' is being used without being initialized.
и показывает на эту строчку
Цитата Сообщение от Leert Посмотреть сообщение
printf("Получившаяся строка: %s",string[i]);
0
Модератор
Эксперт JS
4950 / 2004 / 387
Регистрация: 06.01.2013
Сообщений: 4,694
10.06.2014, 18:43 4
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
#include <iostream>
#include <cstring>
#include <clocale>
 
using namespace std;
 
bool in_list(char symbol, char *list){
  bool tmp = false;
  for (int i = 0; list[i] != '\0'; i++) if (symbol == list[i]) {tmp = true; break;}
  return tmp;
}
 
int main(){
  setlocale(0, "");
  char buf[1024];
  printf("Введите строку (Не более 1023 символов):");
  gets(buf);
  char s_list[] = "BbCcDdFfGgHhJjKkLlMmNnPpQqRrSsTtVvXxYyZz";
  char g_list[] = "AaEeIiOoUuWw";
  
  for (int i = 0; buf[i] != '\0'; i++){
    if (in_list(buf[i], s_list)) buf[i] = '8';
    if (in_list(buf[i], g_list)) buf[i] = '-';
  }
  printf("%s", buf);
}
Сделал для английских символов, так как все русские символы на моем устройстве воспринимаются как многобайтные.

Добавлено через 34 секунды
Переделать, надеюсь, не составит труда.
0
5496 / 4891 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
10.06.2014, 18:47 5
Цитата Сообщение от Leert Посмотреть сообщение
и показывает на эту строчку
И зачем там i ?

Добавлено через 2 минуты
Цитата Сообщение от Leert Посмотреть сообщение
Поменять каждую согласную русскую букву
И где, здесь в коде, русские буквы? Вот это?
C++
1
if((string[i] >= 'B', 'C', 'D', 'F', 'G', 'H', 'J', 'K', 'L', ' M', 'N', 'P', 'Q', 'R', ' S', 'T', 'V', 'W', 'X', 'Z')|| (string[i] = 'b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'l', ' m', 'n', 'p', 'q', 'r', ' s', 't', 'v', 'w', 'x', 'z'))
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.06.2014, 18:47
Помогаю со студенческими работами здесь

В заданном тексте удвоить каждую согласную букву
Ваша программа должна в заданном тексте удвоить каждую согласную букву.

В заданном тексте удвоить каждую гласную букву
Ваша программа должна в заданном тексте удвоить каждую гласную букву.

Вывести имя и отчество, заменив каждую гласную букву *
var st,st1:string; k,i:integer; begin writeln('введите текст'); readln(st); st1:=st+'';...

Убрать из слова каждую вторую гласную букву в диапазоне от 8 до 13 буквы
тема: текстовые файлы. убрать из слова каждую вторую гласную букву в диапазоне от 8 до 13 буквы.


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru