Распечатать буквы слова с соответствующими им кодами - C (СИ)
Формулировка задачи:
пример:
Передать через командную строку слово и целое число N. Распечатать слово N раз.
что необходимо изменить в этой программе,если условие поставить вот так:
#include <stdio.h> #include <stdlib.h> // прототип функции atoi void main (int argc, char *argv[ ]) // функция main( ) с параметрами: // аргумент argc содержит количество переданных параметров+1; // второй аргумент — массив символьных строк argv —содержит //сами параметры в виде строк, в argv[0]—имя файла программы { int i,N; if (argc!=3) { puts(“ Надо передать два параметра “); exit();} // прекращаем работу программы N=atoi(argv[2]); // преобразуем строку в целое число for (i=1; i<=N; i++) // печатаем второй параметр N раз puts( argv[1] ); }
Через командную строку передать слово и целое число N. N раз распечатать буквы слова с соответствующими им кодами.
Решение задачи: «Распечатать буквы слова с соответствующими им кодами»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <errno.h> int main(int argc, char* argv[]) { long int i, N; char* pch; if(argc != 3) fprintf(stderr, "Usage: %s WORD CNT\n", *argv), exit(1); /* Пытаемся перевести строковое представление неотрицательного числа N * в значение типа long int (длинное целое */ N = strtol(argv[2], &pch, 10); /* Обработка неверных значений */ if(argv[2] == pch || *pch != '\0' || N < 0) fprintf(stderr, "`%s' is not a valid non-negative integer\n", argv[2]), exit(1); if(errno == ERANGE) fprintf(stderr, "`%s' is out of range\n", argv[2]), exit(1); if(errno == EINVAL) fprintf(stderr, "No conversion was performed\n"), exit(1); /* Выводим буквы и коды */ for(i = 0; i < N; ++i) { printf("Char | Code\n-----|-----\n"); for(pch = argv[1]; *pch; ++pch) printf("`%c' | 0x%02x\n", *pch, (unsigned int) *pch); putchar('\n'); } exit(0); }
Объяснение кода листинга программы
- Объединение вводит строку
Usage: %s WORD CNT\n
для вывода сообщения об использовании программы. - Затем код проверяет, что введенные аргументы соответствуют ожидаемым. Если аргументов меньше или больше трех, программа выводит сообщение об использовании и завершает работу.
- Затем код пытается преобразовать второй аргумент в целое число типа long int, используя функцию strtol. Если преобразование не удалось или результат отрицательный, программа выводит сообщение об ошибке и завершает работу.
- Если нет ошибок, программа выводит сообщение
Char | Code
и затем выводит коды символов введенного слова, используя цикл for и функцию printf. - Наконец, программа завершает работу с кодом 0, указывающим на успешное выполнение.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д