Как сделать что бы можно было вводить текст, а не задавать в коде программы? - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Как сделать что бы можно было вводить текст, а не задавать в коде программы?
#include <string.h>
#include <stdio.h>
#include <conio.h>
#include <math.h>
//---------------------------------------------------------------------------
 
#pragma hdrstop
 
//---------------------------------------------------------------------------
 
#pragma argsused
int main(int argc, char* argv[])
{
char str[256] = "fesa,2,qwrp,kjfo,aks,ptfgdr,odjhf,bckjd,abgfs";
   char **words = NULL, *p = NULL;
    size_t i, j, len = strlen(str), numWords = 1;
    int m = 0, N;
 
    /* ïîäñ÷èòûâГ*ГҐГ¬ êîëè÷åñòâî ñëîâ */
 
    for (i=0; i < len; i++)
        if (str[i] == ',')
            numWords++;
 
    if ((words = malloc(sizeof(char *) * numWords)) == NULL)
        return 1;
 
/* îòäåëÿåì ñëîâГ* */
    i = 0;
    for (p = strtok(str, ","); p != NULL; p = strtok(NULL, ","))
        if ((words[i++] = strdup(p)) == NULL)
            return 2;
 
    /* ñîðòèðóåì Г¬Г*Г±Г±ГЁГў ñëîâ ïóçûðüêîì */
 
    for (i = 0; i < numWords; i++)
        for (j = numWords - 1; j > i; j--)
            if (strcmp(words[i], words[j]) > 0)
            {
                p = words[i];
                words[i] = words[j];
                words[j] = p;
            }
 
    /* âûâîäèì ïîëó÷åГ*Г*ûé ðåçóëüòГ*ГІ */
 
    for (i = 0; i < numWords; i++)
    {
        if (m==0)
        {
            N = atoi(words[i]);
            if (N != 0)
            {
                N = pow(N,2);
                m = 1;
            }
        }
        if (strlen(words[i]) == 4)
        {
            printf("%s ", words[i]);
        }
    }
    printf("\nkvadrat=%d", N);
    getch();

    return 0;
}
//---------------------------------------------------------------------------

Решение задачи: «Как сделать что бы можно было вводить текст, а не задавать в коде программы?»

textual
Листинг программы
char **words = NULL, *p = NULL;

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

  1. Объявляется двумерный массив символов (строка указателей на строки символов) words типа char **.
  2. Инициализируется указатель на первый элемент массива words, то есть на первую строку символов, значением NULL.
  3. Инициализируется указатель на символ (строку) p значением NULL.

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


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

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

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