Поменять согласные буквы на гласные во введенной пользователем строке, а гласные — на соответствующий ASCII код, используя функции.
Если вы еще не знаете, что такое ASCII код, прочитайте статью — Расширенный набор символов ASCII. Если захотите реализовать данную программу с помощью функций, то не забудьте прочитать статью — Функции в С++. Результат работы программы показан ниже:
// alphavit.cpp: определяет точку входа для консольного приложения. #include "stdafx.h" #include <iostream> #include <stdio.h> #include <ctime> using namespace std; int poisk(const char *c, const int); // прототип функции int main(int argc, char* argv[]) { char in_string[101]; // размер вводимой строки ограничивается сотней символов cout << "Enter the string of characters: "; cin >> in_string; cout << "Result: "; poisk(in_string, strlen(in_string)); // запуск функции system("pause"); return 0; } int poisk(const char *c,//передаем в функцию введенную строку const int size) // размер введенной строки { const char glas[] = "AEIOUYaeiouy"; // массив гласных букв const char sogl[] = "BCDFGHJKLMNPQRSTVWXZbcdfghjklmnpqrstvwxz"; // массив согласных букв srand( time(0) ); //засеваем генератор случайных чисел значением возвращаемым функцией time() for (int i = 0; i < size; i++) { if ( strchr(sogl, c[i]) == NULL) // определяем вхождение символа из введенного массива в массив согласных букв { cout << int(c[i]) << " "; // заменяем гласную букву на целое значение соответствующее этой букве в таблице аски } else { cout << glas[rand() % 12] << " "; // заменяем согласную букву на случайную гласную } } cout << endl; return 0; }
Пример работы программы:
CppStudio.com
Enter the string of characters: cppstudio
Result: O E i o o 117 e 105 111
Комментарии
Роман Максимов
Anufree
Boss
Boss
Вопрос по альтернативному решению задания. Все решения, указанные выше, анализируют исходную строку и далее используют функцию вывода результата на экран. Задачу можно решить иначе: анализировать исходную строку и записывать результат в другую строку, которую далее выводить на экран. Понятно, что для решения задачи достаточно и первого варианта, но второй вариант более универсальный.
При попытке создать программу по второму варианту столкнулся с проблемой записи в итоговую сроку номера символа ACSII. Например, ‘A’ соответствует 65. Для записи числа 65 в строку нужны два символа с кодами 54 и 53. В этом случае задача становится куда более сложной. Буду признателен, если светлая голова выложит решение данной задачи. P.S. готовой штатной функции перевода символа в ASCII код и запись его в переменную типа char не нашел. Скорее всего, не существует.
Smile Time
NaikoN
plaha