Преобразовать телефонный номер (слово или строка) из буквенного представления в цифровое - C (СИ)
Формулировка задачи:
2. Преобразовать телефонный номер (слово или строка) из буквенного представления в цифровое, то есть нужно выполнить замену: • abcABC → 2 • defDEF → 3 • ghiGHI → 4 • jklJKL → 5 • mnoMNO → 6 • pqrsPqRS → 7 • tuvTUV → 8 • wxyzWXYZ → 9 Для замены использовать таблицу.
Решение задачи: «Преобразовать телефонный номер (слово или строка) из буквенного представления в цифровое»
textual
Листинг программы
#include <stdio.h> #include <string.h> #include <ctype.h> void flush_input(void) { char c; while ( scanf("%c", &c) == 1 && c != '\n' ) ; } const char* TABLE[10] = { " ", ".,", "ABC", "DEF", "GHI", "JKL", "MNO", "PQRS", "TUV", "WXYZ", }; typedef char PhoneNumber[16]; #define get_phone_number(pn) ( scanf("%15[^\n]", (pn)) == 1 ) #define ERR_MSG "ERROR" int main(void) { PhoneNumber input, output; while ( printf("Number: ") && get_phone_number(input) ) { int i, complete = 0; char* pIn = input, * pOut = output; flush_input(); while ( ! complete ) { if ( ! *pIn ) { *pOut = '\0'; complete = 1; } else { for ( i = 0; i < 10; ++i ) { if ( strchr(TABLE[i], toupper(*pIn)) ) { *pOut++ = '0' + i; break; } } if ( i == 10 ) { strcpy(output, ERR_MSG); complete = 1; } } ++pIn; } printf("Call to: %s\n", output); } return 0; }
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы: stdio.h, string.h и ctype.h
- Определяется функция flush_input, которая используется для очистки входных данных
- Определяется массив TABLE, который содержит соответствия между буквами и цифрами
- Определяется тип данных PhoneNumber, который представляет собой массив из 16 символов
- Определяются макросы get_phone_number и ERR_MSG
- В функции main создаются две переменные типа PhoneNumber: input и output
- В цикле while запрашивается ввод номера и преобразуется в цифровое представление
- Происходит преобразование введенного номера в цифровое представление
- Если номер не соответствует ни одному из кодов в массиве TABLE, то выводится сообщение об ошибке
- Выводится преобразованный номер
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д