Как сделать что бы можно было вводить текст, а не задавать в коде программы? - 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;
Объяснение кода листинга программы
- Объявляется двумерный массив символов (строка указателей на строки символов) words типа char **.
- Инициализируется указатель на первый элемент массива words, то есть на первую строку символов, значением NULL.
- Инициализируется указатель на символ (строку) p значением NULL.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д