Распечатать буквы слова с соответствующими им кодами - 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);
}

Объяснение кода листинга программы

  1. Объединение вводит строку Usage: %s WORD CNT\n для вывода сообщения об использовании программы.
  2. Затем код проверяет, что введенные аргументы соответствуют ожидаемым. Если аргументов меньше или больше трех, программа выводит сообщение об использовании и завершает работу.
  3. Затем код пытается преобразовать второй аргумент в целое число типа long int, используя функцию strtol. Если преобразование не удалось или результат отрицательный, программа выводит сообщение об ошибке и завершает работу.
  4. Если нет ошибок, программа выводит сообщение Char | Code и затем выводит коды символов введенного слова, используя цикл for и функцию printf.
  5. Наконец, программа завершает работу с кодом 0, указывающим на успешное выполнение.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.846 из 5
Похожие ответы