Я хотел бы сравнить символьный литерал с первым элементом строки, чтобы проверить наличие комментариев в файле.Зачем использовать символ?Я хочу превратить это в функцию, которая принимает символьную переменную для комментария.Я не хочу разрешать строку, потому что хочу ограничить ее длиной до одного символа.
Имея это в виду, я предположил, что самый простой способ - обратиться к символу и передать егоФункция сравнения std :: string.Однако это дает мне непредвиденные результаты.
Мой код выглядит следующим образом:
#include <string>
#include <iostream>
int main ( int argc, char *argv[] )
{
std::string my_string = "bob";
char my_char1 = 'a';
char my_char2 = 'b';
std::cout << "STRING : " << my_string.substr(0,1) << std::endl
<< "CHAR : " << my_char1 << std::endl;
if (my_string.substr(0,1).compare(&my_char1)==0)
std::cout << "WOW!" << std::endl;
else
std::cout << "NOPE..." << std::endl;
std::cout << "STRING : " << my_string.substr(0,1) << std::endl
<< "CHAR : " << my_char2 << std::endl;
if (my_string.substr(0,1).compare(&my_char2)==0)
std::cout << "WOW!" << std::endl;
else
std::cout << "NOPE..." << std::endl;
std::cout << "STRING : " << my_string << std::endl
<< "STRING 2 : " << "bob" << std::endl;
if (my_string.compare("bob")==0)
std::cout << "WOW!" << std::endl;
else
std::cout << "NOPE..." << std::endl;
}
Дает мне ...
STRING : b
CHAR : a
NOPE...
STRING : b
CHAR : b
NOPE...
STRING : bob
STRING 2 : bob
WOW!
Почему функция считает, что подпрограмма-строка и характер не совпадают.Какой самый короткий способ правильно сравнить chars и std :: string vars?
(короткая попытка избежать переклассификации моего вопроса .... не стесняйтесь пропускать)
КогдаЯ говорю самое короткое, я имею в виду это из-за желания кодирования красноречия.Пожалуйста, обратите внимание, это не домашнее задание.Я кандидат наук в области химического машиностроения и занимаюсь программированием как часть независимых исследований.Один из моих последних вопросов был реклассифицирован как «домашнее задание» пользователем msw (который также сделал грубое замечание), когда я спросил об эффективности, которую я рассматривал на границе злоупотребления.Мой код может или не может быть повторно использован другими, но я пытаюсь сделать его легким для чтения и поддержки.У меня также есть странное желание сделать мой код максимально эффективным, насколько это возможно.Отсюда вопросы об эффективности и красноречии.