Как правильно работать со строками?
- Войдите на сайт для отправки комментариев
Пт, 08/05/2020 - 14:19
Добрый день, знатоки.
Помогите с таким вопросом, допустим:
int day = 0;
string sDay = " ";
if (day == 7) sDay = "Sunday";
при выводе получается числовое значение, а не строка.
Как правильно сделать? Читал что нужно использовать char - но тоже получаю цифры.
Не судите строго за глупый вопрос)))
Добрый день, знатоки.
Помогите с таким вопросом, допустим:
int day = 0;
string sDay = " ";
if (day == 7) sDay = "Sunday";
при выводе получается числовое значение, а не строка.
Как правильно сделать? Читал что нужно использовать char - но тоже получаю цифры.
Не судите строго за глупый вопрос)))
А где вывод?Скорее всего выводите неправильно.
Не судите строго за глупый вопрос)))
За это не судим. Судим за крайне небрежную форму вопроса. Настолько небрежную, что исключает всякую возможность адекватного ответа.
Вы
1. Не потрудились прочитать правила оформления постов и вставили код не полностью и без номеров строк. Как Вам отвечать? Так, как я отвечу ниже ... см.
2. Не потрудились прочитать правила оформления постов и вставили код вручную, а не копипастом, в результате я НЕ ЗНАЮ, что у Вас на самом деле написано в строке № ХЗ: "string sDay = " ";" или всё-таки "String sDay = " ";". Догадаться невозможно, потому, что можно и так, и так, но при этом всё остальное нужно делать по-разному. И как Вы предлагает Вам отвечать? Расписывать оба варианта? Не жирно за Вашу элементарную лень задать вопрос по-человечески?
Попробуйте прочитать правила и спросить нормально (первый пост не редактируется, так что пишите в новом).
P.S. Кстати, о недопустимости вставки кода не полностью, Вам коллега и в посте #1 уже сказал.
Строчка кода "sDay = "Sunday";" почему без фигурных скобок?
А я тоже хочу спросить. И про строки и про нестроки. Ваяю я одну библиотечку и в ней нужны бы overload-функции - одна принимает число - ID, другая строку - имя. И компилятор, когда подсовываешь параметром 0, не может определиться - это 0 или '\0'.
Вопрос: как из этой ситуации обычно выворачиваются (если отбросить вариант с принудительным приведением типов)?
раз типы переменных "пересекаются". имхо компилятор никак не сможет определить, какую функцию вызывать. Только приведение
Там есть варианты. Например, насколько важно, чтобы id бы именно беззнаковым?
Например, в таком виде, всё работает адекватно. Вызывается именно то, что нужно:
Результат
Id - байтовый (0...255) и два байта на него я пожалел. Т.е. тут как-бы торг с собой - экономно делать или красиво.
Не понял, да держите Вы его байтовым на здоровье (в структуре или ещё где), параметр функции то чем провинился? Его оставьте int. Когда надо будет в структуру записать - преобразуется в байт, никуда не денется. Ну или там внутри функции преобразуете - всё же в одном месте, а не при каждом вызове. Проблема то именно с параметром.
Ну, если взять байтовый параметр с принудительным кастингом, то с отключенной оптимизацией при компиляции выигрываю 4 байта у варианта с двубайтовым параметром ))
А если с оптимизацией - то всё едино.
Это так, перфекционизм. В скрижалях написано - не трать байты там, где не надо, я и не трачу. Пытаюсь, во всяком случае.
я и не трачу
Я тоже, ибо
с оптимизацией - то всё едино.
Оптимизация - она ровно для этого и нужна, чтобы я писал так, ка удобно мне, а об удобствах процессора заботился оптимизатор.
И, кстати, если та функция ещё и inline, то разговор вообще ни о чём, т.к. реально ничего вообще никуда не передаётся.
Ну, стратегически я к инлайну и стремлюсь, на текущей итерации всё выглядит примерно так:
Вроде как оптимизатор уже должен дотумкать, что тут автоинлайн нужно врубать.
Правильный вопрос в данном случае должен звучать так:"как правильно работать с поисковиками ?".
Обсуждалось , даже на этом форуме уже сотни раз.