我想比较字符文字与字符串的第一个元素,以检查文件中的注释。为什么使用char?我想把它变成一个函数,它接受评论的字符var。我不想允许一个字符串,因为我想将其限制为单个字符的长度。将字符文字与C++中的Std :: String进行比较
考虑到这一点,我认为简单的方法是解决字符并将其传递给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!
为什么函数认为子串和字符是不一样的。正确比较字符和std :: string vars的最简单方法是什么?
(短咆哮我的问题的避免叙 ....随意跳过)
当我说最短我的意思是出了编码口才的愿望。请注意,这不是一个家庭作业问题。我是一名化学工程博士候选人,并且正在编码,作为独立研究的一部分。当我问到效率问题时,我最后一个问题中的一个被用户msw重新归类为“家庭作业”(他也发表了一个讽刺评论),我认为这是滥用的边界。我的代码可能会或可能不会被其他人重用,但我正在努力使其易于阅读和维护。我也有一个奇怪的愿望,尽可能使我的代码尽可能高效。因此,关于效率和口才的问题。
在尝试访问'my_string [0]'之前,不要忘记检查'0
2010-08-30 19:39:23