Вопрос по C++ В чем отличие кавычек " и ' ?

Здесь принимаются все самые невообразимые вопросы... Главное - не стесняйтесь. Поверьте, у нас поначалу вопросы были еще глупее :)
Ответить
Аватара пользователя
vek
Вымогатель припоя
Сообщения: 563
Зарегистрирован: Чт апр 16, 2009 04:53:41

Вопрос по C++ В чем отличие кавычек " и ' ?

Сообщение vek »

Добрый день. Пишу учебный код на С++ Вот такой.

//Задание: создать калькулятор
#include<iostream>
using namespace std;

int main(void)
{
setlocale(LC_ALL, "rus");

int var_1 = 0; //объявляем переменные с которыми что-то нужно будет сделать
int var_2 = 0;
char option ;

cout << "введите первое число" << endl; //инициализируем первую переменную
cin >> var_1;
cout << "введите второе число" << endl; //инициализируем вторую переменную
cin >> var_2;

cout << "вы ввели числа " << var_1 << " и " << var_2; //что юзер хочет сделать с числами?
cout << "\nкакое действие вы хотите произвести над этими числами?" << endl;
cout << "Вы можете использовать знаки '+' '-' '/' '*'";
cin >> option;

switch (option)
{
case '+': //!!!!!!!!!!!!!!!!!! столкнулся с вопросом:чем отличаются " от '(заработало только при '+',если делать "+" - не работает)
cout << "сумма: " << var_1 << "+" << var_2 << "=" << var_1 + var_2;

default:
break;
}


return 0;
}

//////////////////////////////
При выполнении задания из самоучителя столкнулся с вопросом,с которым сам не смог разобраться. Конкретнее в операторе switch-case столкнулся (выделил комментарием с кучей !!!): Объясните чем отличаются кавычки ' и " ? как их правильно применять? Заранее спасибо

Добавлено after 32 minutes 30 seconds:
Я не очень понимаю,но предположу что "_" - это массив,а '_' - это не массив. Как правильно применять не вполне понятно.
В первый раз меня ударило током - и я подумал что ни черта не соображаю в электричестве. Во второй раз был аккуратнее и меня не ударило - теперь я возомнил из себя крутого микроэлектронщика.
Аватара пользователя
AlexS4
Друг Кота
Сообщения: 6646
Зарегистрирован: Пт сен 10, 2021 15:19:36
Откуда: Протвино

Re: Вопрос по C++ В чем отличие кавычек " и ' ?

Сообщение AlexS4 »

да, именно так. "xxx" или "x" это константный массив с 0x0 признаком завершения из обьектов типа char. а 'x' или '0x55' или '071' это одно константное слово типа char, ровно один символ. соответственно где нужны и допустимы строчки ставим "xxxx" а где допустимы только по 1 char (символу/машинному_слову/байту) там строго 'x'.

например case не может сравнить переменную типа char со строчкой содержашей символы char потому что просто не определена функция/оператор сравнения для такого сочетания типов обьектов.

в некоторых языках вопросы преобразования типов частично скрыты от пользователя и там чудесным образом "работают" иногда дикие с точки зрения логики конструкции
Аватара пользователя
vek
Вымогатель припоя
Сообщения: 563
Зарегистрирован: Чт апр 16, 2009 04:53:41

Re: Вопрос по C++ В чем отличие кавычек " и ' ?

Сообщение vek »

Спасибо за отзывчивость. Я вроде понял,но почти нихрена не понял как это применять. Огромное пожалуйста: разъясните для лиги тупых.
В первый раз меня ударило током - и я подумал что ни черта не соображаю в электричестве. Во второй раз был аккуратнее и меня не ударило - теперь я возомнил из себя крутого микроэлектронщика.
Аватара пользователя
mickbell
Друг Кота
Сообщения: 16368
Зарегистрирован: Пт мар 30, 2012 05:17:29
Откуда: Екатеринбург

Re: Вопрос по C++ В чем отличие кавычек " и ' ?

Сообщение mickbell »

Если вы хотите, чтобы значение переменной, к примеру,
char digit;
стало равно, ну пусть 0x35, то для наглядности сразу можете записать это как
digit = '5';
это то же самое, что
digit = 0x35;
Если же вы хотите заполнить массив переменных
char message[4];
то можете прописать значение каждого элемента индивидуально, например,
message[0] = 0xD5;
message[1] = 0xF3;
message[2] = 0xE9;
message[3] = 0x00;

а можете при инициализации сразу прописать всё это слово в кавычках (уточняю, двойных, не в апострофах).
И хрюкотали зелюки,
Как мюмзики в мове.
_________________
На каждый РКН
Найдётся VPN.
Ответить

Вернуться в «Теория»