Форум программистов, компьютерный форум, киберфорум
Наши страницы

C для начинающих

Войти
Регистрация
Восстановить пароль
 
Kriksorum
0 / 0 / 0
Регистрация: 19.02.2013
Сообщений: 49
#1

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

12.02.2015, 13:57. Просмотров 382. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как сделать что бы можно было вводить текст, а не задавать в коде программы? (C (СИ)):

Можно ли сделать так, чтобы во время цикла можно было вводить какую нибудь символ? - C (СИ)
Можно ли сделать так, чтобы во время цикла можно было вводить какую нибудь строку? Например идёт цикл и я могу ввести какой либо символ и...

Необходимо переделать программу, чтобы в программе можно было вводить колличество итераций - C (СИ)
необходимо чтоб в программе можно было вводить колличество итераций (сейчас они заданы как бы по умолчанию) #include&lt;iostream.h&gt; ...

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

Змейка: Как сделать так, чтобы одни яблоки можно было есть, а вторые нет - C (СИ)
void PlusJabloko(Game &amp;g) //Функция разброски яблок { int i,x,y; int n = g.gaduka.PCount; do { x = rand() % 56+3; // ...

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

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

3
KolodeznyDiver
1807 / 1373 / 158
Регистрация: 01.06.2013
Сообщений: 2,977
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
KolodeznyDiver
1807 / 1373 / 158
Регистрация: 01.06.2013
Сообщений: 2,977
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
12.02.2015, 14:57
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.02.2015, 14:57
Привет! Вот еще темы с ответами:

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

Сделать так, что бы BoardSize можно было задавать самому - C#
public const int BoardSize = 10; private enum PosState { Queen, Empty }; private PosState board = new PosState; Нужно сделать так,...

как сделать так, чтоб при работе программы можно было вводить в качестве данных русские слова? - C++
мммм?

Как сделать так, что бы можно было вводить данные в форму и давал вывод в той же форме? - Java
вот сам код! import javax.swing.*; import java.awt.*; import java.util.ArrayList; import java.util.Random; import...


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

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

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