Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.97/86: Рейтинг темы: голосов - 86, средняя оценка - 4.97
5 / 5 / 0
Регистрация: 23.07.2013
Сообщений: 112

Применение команды char

06.08.2013, 00:11. Показов 16429. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Я несколько раз встречал такую команду как char но так и не понял зачем она, только одно понял, что она применяется для внесения переменных, но для каких я тоже не понял.
Вот где я ее встречал:
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
/*
 * Программа для оценивания важности карт.
 * Выпущено под публичной Лас-Вегасской лицензией.
 * (с)2014 Команда коледжа по блек-джеку.
 */
#include <stdio.h>
#include <stdlib.h>
int main()
{
    char card_name[3];
    puts("Enter the name of the map: ");
    scanf("%2s", card_name);
    int val = 0;
    if (card_name[0] == 'K') {
        val = 10;
    } else if (card_name[0] == 'Q') {
        val = 10;
    } else if (card_name[0] == 'J') {
        val = 10;
    } else if (card_name[0] == 'A') {
        val = 11;
    } else {
        val = atoi(card_name);
    }
    printf("Value cards: %i\n", val);
    return 0;
}
Также в разных "модификациях" этой программы:
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
/*
 * Программа для оценивания важности карт.
 * Выпущено под публичной Лас-Вегасской лицензией.
 * (с)2014 Команда коледжа по блек-джеку.
 */
#include <stdio.h>
#include <stdlib.h>
int main()
{
    char card_name[3];
    puts("Enter the name of the map: ");
    scanf("%2s", card_name);
    int val = 0;
    if (card_name[0] == 'K') {
        val = 10;
    } else if (card_name[0] == 'Q') {
        val = 10;
    } else if (card_name[0] == 'J') {
        val = 10;
    } else if (card_name[0] == 'A') {
        val = 11;
    } else {
        val = atoi(card_name);
    }
    if ((val > 2) && (val < 7))
        puts ("Counter increased");
    else if (val == 10, 11)
        puts ("The counter is decremented");
    system("PAUSE");
    return 0;
}
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
/*
 * Программа для оценивания важности карт.
 * Выпущено под публичной Лас-Вегасской лицензией.
 * (с)2014 Команда коледжа по блек-джеку.
 */
#include <stdio.h>
#include <stdlib.h>
int main()
{
    char card_name[3];
    puts("Enter the name of the map: ");
    scanf("%2s", card_name);
    int val = 0;
    switch(card_name[0]) {
        case 'K':
        case 'Q':
        case 'J':
          val = 10;
          break;
        case'A':
          val = 11;
          break;
        default:
          val = atoi(card_name);
    }
    if ((val > 2) && (val < 7))
        puts ("Counter increased");
    else if (val == 10, 11)
        puts ("The counter is decremented");
    system("PAUSE");
    return 0;
}
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
/*
 * Программа для оценивания важности карт.
 * Выпущено под публичной Лас-Вегасской лицензией.
 * (с)2014 Команда коледжа по блек-джеку.
 */
#include <stdio.h>
#include <stdlib.h>
int main()
{
    char card_name[3];
    int count = 0;
    while (card_name[0] != 'X') {
        puts("Enter the name of the map: ");
        scanf("%2s", card_name);
        int val = 0;
        switch(card_name[0]) {
        case 'K':
        case 'Q':
        case 'J':
          val = 10;
          break;
        case 'A':
          val = 11;
          break;
        case 'X':
          continue;
        default:
          val = atoi(card_name);
          if ((val < 1) || (val > 10)) {
              puts("I do not understand is the difference!");
              continue;
          }           
        }
        if ((val > 2) && (val < 7)) {
            count++;
        } else if (val == 10) {
            count--;
        }
        printf("Current: %i\n", count);
    }
    system("PAUSE");
    return 0;
}
Можете пожалуйста разъяснить зачем она используется (желательно примитивно)))
Спасибо за внимание

Добавлено через 6 минут
Программы писал по учебнику но там не было указанно назначение команды char, а сам как жаль не додумался
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.08.2013, 00:11
Ответы с готовыми решениями:

CONST_RETURN char *__cdecl strstr (const char *_Str, const char *_SubStr)
#include &lt;stdio.h&gt; #include &lt;string.h&gt; char tracks = { &quot;ya ostavil svoe serdce v harvardskom med univere&quot;, &quot;NewYork New York...

Assigning from int to char[10] from char to char[10]
добрый день, подскажите пожалуйста, в карточной колоде 52 карты, у меня есть массив структур где Value 1 2 3 ...13 suit c h d s ...

Переход с 10 на 17 Студию 2440 =: невозможно преобразовать "const char [2] в char*
Доброго Нового года! Через пару дней сдавать контрольную работу, которую сделал ещё вначале осени, а тут совсем нелепая проблема....

10
249 / 219 / 63
Регистрация: 30.07.2013
Сообщений: 465
06.08.2013, 01:14
Эм... , char - не команда. Это тип, целочисленный. Используется в основном для хранения символов ('a', 'd' и т.д.). Массив символов в C - это строка. В приведенных листингах объявляется именно массив символов, хотя используется только один из них.
1
5 / 5 / 0
Регистрация: 23.07.2013
Сообщений: 112
06.08.2013, 01:24  [ТС]
Это очень похоже на команду int и я несколько не понял между ними разницы.

Добавлено через 3 минуты
Как знаю int еще может давать значение переменой, а вот "команда" char может, или она просто вводит массив в программу который потом может использоватся?

Добавлено через 3 минуты
Вот на этом примере можешь пожалуйста сказать зачем char вписывается:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
{
    char card_name[3];
    puts("Enter the name of the map: ");
    scanf("%2s", card_name);
    int val = 0;
    if (card_name[0] == 'K') {
        val = 10;
    } else if (card_name[0] == 'Q') {
        val = 10;
    } else if (card_name[0] == 'J') {
        val = 10;
    } else if (card_name[0] == 'A') {
        val = 11;
    } else {
        val = atoi(card_name);
    }
    printf("Value cards: %i\n", val);
    return 0;
}
За это большое спасибо
0
 Аватар для lowercase
213 / 202 / 85
Регистрация: 09.05.2012
Сообщений: 494
06.08.2013, 01:40
почитайте о типах данных(простых типах и масивах) в си.
char - это такой же целочисельный тип данных как и int. разница лишь в том, что переменная типа int - это 4 байта(правда не всегда), а char - 1 байт. то есть разница в диапазонах возможных значний.
как было сказано выше char в основном используется для хранения символов(а точнее их кодов).
масив "вводится" в программу посредством специального обьяления переменной. int x[], char s[] - это два массива. в первом случае все элементы имеют тип int, во втором - char
не обязательно, но массив типа char можно считать строкой, если в таком массиве есть символ '\0'.(сим. с кодом 0)
в общем возьмитесь за книгу и попробуйте почитать, о типах данных, в часности простых типах, масивах и строках.

Добавлено через 5 минут
Цитата Сообщение от Yamakasi009 Посмотреть сообщение
Вот на этом примере можешь пожалуйста сказать зачем char вписывается:
char card_name[3]; обьявили массив на 3 элемента типа char(символ)
scanf("%2s", card_name); - производит чтение строки со стандартного потока ввода(консоли, терминала, командной строки или чего бы то ни было) размером в 2 символа в буфер(в данном случае массив символов) card_name. однако, функция scanf помимо двух считаных символов, поместит в буфер еще и символ '\0' дабы сделать это "настоящей" строкой.
дальше с помощью блока взаимоисключающих условий проверяется первый(индекс 0) символ в этой строке(card_name).
1
5 / 5 / 0
Регистрация: 23.07.2013
Сообщений: 112
06.08.2013, 11:45  [ТС]
Цитата Сообщение от lowercase Посмотреть сообщение
что переменная типа int - это 4 байта(правда не всегда)
Это обычно зависит от ОС и еще от x64 или x36 битная система.
Цитата Сообщение от lowercase Посмотреть сообщение
в общем возьмитесь за книгу и попробуйте почитать, о типах данных, в часности простых типах, масивах и строках.
Я как раз читаю книгу про программирование и там что то не очень подробно объяснили, как жаль, но про массивы там есть.
Цитата Сообщение от lowercase Посмотреть сообщение
scanf("%2s", card_name);
С этой командой я разобрался.
Цитата Сообщение от lowercase Посмотреть сообщение
поместит в буфер еще и символ '\0'
Про то что Си всегда в конце строки ставит \0 я знаю, и еще про то что он не читает по строкам а читает по буквам но за это спасибо что всегда подмечал
Цитата Сообщение от lowercase Посмотреть сообщение
char card_name[3]; обьявили массив на 3 элемента типа char(символ)
Можешь пожалуйста чуть по подробние написать почему три и что оно дает.
C
1
2
3
4
5
6
7
8
9
10
11
if (card_name[0] == 'K') {
        val = 10;
    } else if (card_name[0] == 'Q') {
        val = 10;
    } else if (card_name[0] == 'J') {
        val = 10;
    } else if (card_name[0] == 'A') {
        val = 11;
    } else {
        val = atoi(card_name);
    }
И еще, можешь пожалуйста объяснить почему тут ставится ноль.
За это большое спасибо , а также за внимание
0
81 / 81 / 33
Регистрация: 03.03.2013
Сообщений: 311
06.08.2013, 23:34
lowercase, Fyret, да что вы объясняете, по-моему здесь очевидно, что парень книжку в картинках рассматривает, ну в крайнем случае взял какую то не для начинающих. Yamakasi009, напишите, какую книгу хоть взяли, может Вам что-то более подходящее предложат.
0
5 / 5 / 0
Регистрация: 23.07.2013
Сообщений: 112
06.08.2013, 23:52  [ТС]
Я брал книжку в руки и уж точно не по картинкам ее смотрел, книжка называется "Изучаем программирование на C". Писатели: Дэвид Гриффитс; Дон Гриффитс.
Просто я так по "тупому" спрашывал потому что спишил и немножко не вник в слова и еще не совсем понял некоторые моменты, вот и все.

Добавлено через 2 минуты
Я не понял почему все таки три а не пять например.
0
19 / 19 / 7
Регистрация: 17.05.2013
Сообщений: 72
07.08.2013, 00:14
однозначно не советую ТС'у IDE, в которой транслятор работает с исходным кодом, написанном на русскоязычном синтаксисе..
0
5 / 5 / 0
Регистрация: 23.07.2013
Сообщений: 112
07.08.2013, 11:27  [ТС]
Окей.
Так все таки вернемся к главной теме: почему именно три а не пять например???
0
81 / 81 / 33
Регистрация: 03.03.2013
Сообщений: 311
07.08.2013, 11:33
Цитата Сообщение от Yamakasi009 Посмотреть сообщение
Окей.
Так все таки вернемся к главной теме: почему именно три а не пять например???
Если Вы не ошиблись в этой
C
1
scanf("%2s", card_name);
и этой
C
1
char card_name[3];
строках.
0
5 / 5 / 0
Регистрация: 23.07.2013
Сообщений: 112
07.08.2013, 11:36  [ТС]
Я использую MinGW.

Добавлено через 1 минуту
Значит scanf должно бытьт равно char card_name и наоборот???
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.08.2013, 11:36
Помогаю со студенческими работами здесь

Ошибка в коде: несовместимы типы операндов (char и const char)
Текст не содержит знаков препинания и набран одинаковым шрифтом. Составить программу определения коли-чества использования в тексте:...

Error C2440: =: невозможно преобразовать 'char (*)[150]' в 'char *'
Есть следующая задача. Написать программу, которая запрашивает количество родственников в семье, а потом позволяет ввести имя...

Const char нельзя присвоить сущность типа char
Здравствуйте! Начинаю изучать Си И вот у меня немного не получается написать свою первую программу. #define...

Тип signed char и unsigned char
Есть путаница в типах данных в Си signed char и unsigned char. Если объявить переменную следующим образом char symbol;То компилятор сам...

Чем char отличается от unsigned char?
я наверно тупая,но понять этого не могу.помогите,пожалуйста спасибо


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Генерация OpenQASM из кода Q#
EggHead 10.07.2025
Летом 2024-го я начал эксперименты с библиотекой Q# Bridge, и знаете что? Она оказалась просто находкой для тех, кто работает на стыке разных квантовых экосистем. Основная фишка этой библиотеки -. . .
Изучаем новый шаблон ИИ-чата .NET AI Chat Web App
stackOverflow 10.07.2025
В . NET появилось интересное обновление - новый шаблон ИИ-чата под названием . NET AI Chat Web App. Когда я впервые наткнулся на анонс этого шаблона, то сразу понял, что Microsoft наконец-то. . .
Результаты исследования от команды ARP (июль 2025 г.)
Programma_Boinc 10.07.2025
Результаты исследования от команды ARP (июль 2025 г. ) Африканский проект по дождям (ARP) World Community Grid снова запущен! Мы рады поделиться обновленной информацией о нашем прогрессе с осени. . .
Angular vs Svelte - что лучше?
Reangularity 09.07.2025
Сегодня рынок разделился на несколько четких категорий: тяжеловесы корпоративного уровня (Angular), гибкие универсалы (React), прогрессивные решения (Vue) и новая волна компилируемых фреймворков. . .
Code First и Database First в Entity Framework
UnmanagedCoder 09.07.2025
Entity Framework дает нам свободу выбора, предлагая как Code First, так и Database First подходы. Но эта свобода порождает вечный вопрос — какой подход выбрать? Entity Framework — это. . .
Как использовать Bluetooth-модуль HC-05 с Arduino
Wired 08.07.2025
Bluetooth - это технология, созданная чтобы заменить кабельные соединения. Обычно ее используют для связи небольших устройств: мобильных телефонов, ноутбуков, наушников и т. д. Работает она на частоте. . .
Руководство по структурам данных Python
AI_Generated 08.07.2025
Я отчетливо помню свои первые серьезные проекты на Python - я писал код, он работал, заказчики были относительно довольны. Но однажды мой наставник, взглянув на мою реализацию поиска по огромному. . .
Тестирование энергоэффективности и скорости вычислений видеокарт в BOINC проектах
Programma_Boinc 08.07.2025
Тестирование энергоэффективности и скорости вычислений видеокарт в BOINC проектах Опубликовано: 07. 07. 2025 Рубрика: Uncategorized Автор: AlexA Статья размещается на сайте с разрешения. . .
Раскрываем внутренние механики Android с помощью контекста и манифеста
mobDevWorks 07.07.2025
Каждый Android-разработчик сталкивается с Context и манифестом буквально в первый день работы. Но много ли мы задумываемся о том, что скрывается за этими обыденными элементами? Я, честно говоря,. . .
API на базе FastAPI с Python за пару минут
AI_Generated 07.07.2025
FastAPI - это относительно молодой фреймворк для создания веб-API, который за короткое время заработал бешеную популярность в Python-сообществе. И не зря. Я помню, как впервые запустил приложение на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru