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

Упражнение на строки - C++

Восстановить пароль Регистрация
 
mariooo
3 / 3 / 0
Регистрация: 01.12.2012
Сообщений: 53
22.06.2014, 02:45     Упражнение на строки #1
Петя записался в кружок по программированию. На первом занятии Пете задали написать простую программу. Программа должна делать следующее: в заданной строке, которая состоит из прописных и строчных латинских букв, она:
-удаляет все гласные буквы,
-перед каждой согласной буквой ставит символ ".",
-все прописные согласные буквы заменяет на строчные.

Гласными буквами считаются буквы "A", "O", "Y", "E", "U", "I", а согласными — все остальные. На вход программе подается ровно одна строка, она должна вернуть результат в виде одной строки, получившейся после обработки.
Помогите Пете справиться с этим несложным заданием.

Входные данные
Первая строка представляет собой входные данные для Петиной программы. Эта строка состоит только из прописных и строчных латинских букв и имеет длину от 1 до 100 включительно.

Выходные данные
Выведите получившуюся строку. Гарантируется, что эта строка не пуста.

Примеры тестов
входные данные
tour
выходные данные
.t.r
входные данные
Codeforces
выходные данные
.c.d.f.r.c.s
входные данные
aBAcAba
выходные данные
.b.c.b
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
#include<stdio.h>
#include<conio.h>
#include<math.h>
#include<string.h>
#include <iostream> 
    
using namespace std;
 
int main(){
int j=0,big, small;
char ch1[100], ch2[200];
printf("Enter text:");
gets(ch1);
int k=strlen(ch1);
    for(int i=0;i<k;i++){
        for(big=65,small=97;big<=90,small<=122;big++,small++){
        if(ch1[i]==big){ch1[i]=small;}
        }        
        if(ch1[i]==97||ch1[i]==111||ch1[i]==121||ch1[i]==101||ch1[i]==117||ch1[i]==105){ch1[i]=' ';}
        if(ch1[i]=='\0'){break;}
        if(ch1[i]==' '){continue;}
        else{ch2[j]='.';
             j++;
             ch2[j]=ch1[i];
             j++;
        }
    }
 
cout<<ch2<<endl;
getch();
return 0;
}
есть такая проблема если ввести для теста слово laplandiya или pengmi или lol lol то в конце оно добавляет случайные символы, помогите разобраться почему и откуда
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.06.2014, 02:45     Упражнение на строки
Посмотрите здесь:

Упражнение с использованием структуры C++
C++ Упражнение с использованием векторов
Упражнение C++
Упражнение из учебника С. Липпмана C++
Упражнение из книги. C++
Упражнение со скобками: получение максимального выражения C++
Упражнение из книги Лафоре C++
Упражнение из Страуструпа: конкатенация С-строк C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
5952 / 5557 / 1787
Регистрация: 18.12.2011
Сообщений: 14,201
Завершенные тесты: 1
22.06.2014, 10:44     Упражнение на строки #2
В конце строки ch2 надо добавить терминальный нуль
C++
1
2
ch2[j]=0;
cout<<ch2<<endl;
Yandex
Объявления
22.06.2014, 10:44     Упражнение на строки
Ответ Создать тему
Опции темы

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