Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Kriksorum
0 / 0 / 0
Регистрация: 19.02.2013
Сообщений: 49
#1

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

12.02.2015, 13:57. Просмотров 426. Ответов 3
Метки нет (Все метки)

Как сделать что бы можно было вводить текст, а не задавать в коде программы?
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#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;
}
//---------------------------------------------------------------------------
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.02.2015, 13:57
Ответы с готовыми решениями:

Можно ли сделать так, чтобы во время цикла можно было вводить какую нибудь символ?
Можно ли сделать так, чтобы во время цикла можно было вводить какую нибудь...

Необходимо переделать программу, чтобы в программе можно было вводить колличество итераций
необходимо чтоб в программе можно было вводить колличество итераций (сейчас они...

Как сделать так, чтобы можно вводить только целые цифры, без запятых?
Задание: За номером дня месяца вывести на экран предыдущее число, если в месяце...

как сделать чтобы максимально можно было добавить 3 авто
#include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;locale&gt;...

Змейка: Как сделать так, чтобы одни яблоки можно было есть, а вторые нет
void PlusJabloko(Game &amp;g) //Функция разброски яблок { int i,x,y; int n =...

3
Curry
2545 / 1710 / 219
Регистрация: 01.06.2013
Сообщений: 3,515
Записей в блоге: 7
12.02.2015, 14:03 #2
C
1
2
3
    char str[256];
    printf("Vvedite tekst : ");
    gets(str);
0
Kriksorum
0 / 0 / 0
Регистрация: 19.02.2013
Сообщений: 49
12.02.2015, 14:44  [ТС] #3
я так пробовал, ошибка в этой строке
C
1
char **words = NULL, *p = NULL;
0
Curry
2545 / 1710 / 219
Регистрация: 01.06.2013
Сообщений: 3,515
Записей в блоге: 7
12.02.2015, 14:57 #4
Цитата Сообщение от Kriksorum Посмотреть сообщение
я так пробовал
Если хотите использовать массив массивов (char **), то, после выделения памяти words = (char**)malloc(...)
Выделяйте память под каждое слово words[i]=(char*)malloc(...) в цикле.
В конце программы нужно в цикле освободить все массивы под слова, а затем и сам free(words).
Цитата Сообщение от Kriksorum Посмотреть сообщение
words[i] = words[j];
Вы так строчки не скопируете, нужно
strcpy(words[i],words[j])
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.02.2015, 14:57

Как сделать в коде программы, чтобы можно было вводить числа самому, а не случайно. (Код прилагается)
Доброго времени суток. Хочу узнать, как можно сделать вместо случайного ввода...

Как сделать что бы в HTML форму можно было вводить только русский текст?
Делаю для сайта форму регистрации, проблема, нужно что бы в форму &quot;имя&quot;...

как сделать в этом коде чтоб конкретное число кнопок можно было задавать допустим 3 кнопки чтоб открывало
this.Load += new EventHandler(Form4_Load); button1.MouseHover +=...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru