我需要將像「... 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