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

Кодирование введённой пользователем строки по опрделённому правилу - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Форматирование вывода http://www.cyberforum.ru/cpp-beginners/thread675793.html
Ребят....помогите решить задачку по С++ Описать переменную вещественного типа. Ввести ее значение с клавиатуры. Очистить экран. Вывести значение переменной на экран в формате 2 знака после запятой в следующем виде: i = 4,33000000000000000000000000000000000000000000000000000 Спасибо заранее.
C++ Дано натуральное число n. Вычислить сумму его цифр Помогите пожалуйстааа! :) Нужно на с++ реализовать эту задачку http://www.cyberforum.ru/cpp-beginners/thread675786.html
Найти среднее арифметичное для чисел пока не введем 0. Только через for и do-while и проверить является ли число простым C++
Помогите пожалуйста! Найти среднее арифметичное для чисел пока не введем 0.Только через for и do-while и проверить является ли число простым.
C++ Дан одномерный массив целых чисел напечатать все четные эелементы (посмотрете код)
Дан одномерный массив целых чисел напечатать все четные эелементы (посмотрете код) Скажите, что я не правильно тут сделал #include <iostream> using namespace std; int main() { int mas, ch; for (int i = 0; i < 10; i++)
C++ Считать char числом http://www.cyberforum.ru/cpp-beginners/thread675769.html
Хотелось бы считать char числом сразу. Конструкция типа scanf("%d", &someChar); - подходит, но вызывает stack around .. corrupted-предупреждение. Решение вида int someCharCopy; scanf("%d", &someCharCopy); char someChar = char(someCharCopy); нельзя использовать. Есть какие-либо варианты? Ещё вопрос. Я предполагал, что, даже если идти считыванием вида scanf("%d", &someChar), то в буфере...
C++ двусвязный список, как сделать добавление элемента? двусвязный список, как сделать добавление элемента? пока вот что сочинил. /*Список*/ struct list_item_t { list_item_t *previous; list_item_t *next; подробнее

Показать сообщение отдельно
studentX
0 / 0 / 0
Регистрация: 14.10.2012
Сообщений: 4
20.10.2012, 17:11     Кодирование введённой пользователем строки по опрделённому правилу
В общем вот задание:
Ввести с клавиатуры символьную строку длиной не более 80 символов. Строка должна быть введена посимвольно с использованием функции getchar(). Строка должна представлять собой произвольное абстрактное предложение, состоящее из слов, отделяемых друг от друга как минимум одним символом пробела. Построить новую строку, в которой дан перевод исходной строки в кодированный текст. В системе кодирования каждой букве английского алфавита ставится в соответствие некоторое слово (например, A - apple, B - bull, C - cat и т.д.). Коды букв в слове отделяются символом *.

Т.е. чел вводит любую последовательность английских букв, а прога должна их вывести соответствующими словами(A - apple, B - bull, C - cat и т.д.), отделяемыми *. Я написал код, прога пашет, но оказывается программа не верна! Точнее не то, что нужно. А нужно ее написать с помощью 3-х конкретных функций:getchar(), strtok() и strcat() (это минимум). В принципе я понял, что делают эти функции, но не понял, как их сюда втиснуть. Пожалуйста, помогите разобрать и программу доделать!)

Вот код:

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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#include "stdafx.h"
#include <stdio.h>
#include <iostream>
#include <conio.h>
#include <string.h>
 
using namespace std;
 
 
int main()
{
    setlocale(LC_ALL,"Russian");
    char c[80];
    
    char arrc[27]={'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z',' '};
    char* arrs[27]={"apple*","blood*","car*","day*","eat*","fire*","google*","head*","ildar*","jump*","kill*","lol*","mom*","nero*","octopus*","people*","qwerty*","rain*","stop*","tetris*","umbrella*","victory*","west*","x-men*","yandex*","zero*"," "};
    int n; bool check = true;
    printf("Введите строку (соответственно используя только английские буквы):\n");
    for (int i=0; i<80; i++)
    {
        c[i]=getchar();
        if (!(((c[i]>='a') && (c[i]<='z')) || ((c[i]>='A') && (c[i]<='Z')) || (c[i]==' ') || (c[i]=='\n')))
        {
            check = false;
            {
            break;
            }
        }
        if (c[i]=='\n')
        {
            n=i;
            {
            break;
            }
        }
    }
 
if (check)
    {
        for (int i=0; i<n; i++)
        {
            for (int j=0; j<27; j++)
            {
                if (toupper(c[i])==arrc[j]) 
                {
                    printf(arrs[j]);
                    break;
                }
            }
        }
    }
    else 
    {
        cout << "Ошибка!\nСтрока вводится ТОЛЬКО на английском языке, исключая: цифры, иные символы (кроме пробела) и другие языки.\n\n";
    }
    cout << "\n\nДля выхода нажмите любую клавишу";
    _getch();
    
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 05:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru