我需要将像“... hello2”这样的ASCII字符串转换为十进制和/或十六进制表示形式(数字形式,具体种类无关紧要)。所以,“你好”将是:68 65 6c 6c 6f 32在HEX。如何在不使用巨大if语句的情况下在C++中执行此操作?将ASCII字符串转换为十进制和十六进制表示形式
编辑:好了,所以这是我去的解决方案:
int main()
{
string c = "B";
char *cs = new char[c.size() + 1];
std::strcpy (cs, c.c_str());
cout << cs << endl;
char a = *cs;
int as = a;
cout << as << endl;
return 0;
}
你可以通过做'char a ='B'来隐式地将任何char转换为ascii值。 int as = a;'< - 产生66(ascii值) – 2010-08-03 20:00:35
我喜欢这个技巧。我现在唯一的问题是,如何以这种方式转换字符串?我想这个问题真的是,我如何将一个字符串的单个元素等同于“a”? – 2010-08-03 20:56:04
你可以在for循环中逐个字符地完成它。 – 2010-08-04 00:15:54