我們被要求作出的功能,將十進制數字轉換爲二進制,並將一個整數作爲輸入,但必須給一個字符串作爲輸出。如何將數組存儲到一個字符串中?如何返回一個字符串,當我有一個函數,給出一個數組
string DecToBin(int num)
{
string res;
for (int n = 15; n >= 0; n--)
{
if ((num - pow(2, n)) >= 0)
{
res[n] = 1;
num -= pow(2, n);
}
else
{
res[n] = 0;
}
}
for (int n = 15; n >= 0; n--)
{
res[n];
}
}
當你聲明字符串的大小爲零時,也就是說, 'res [n]'將索引出現在* every *'n'的範圍之外,導致[* undefined behavior *](http://en.wikipedia.org/wiki/Undefined_behavior)。但是,如果你閱讀例如[這個'std :: string'引用](http://en.cppreference.com/w/cpp/string/basic_string)我相信你可以找到*附加*字符到字符串的東西。 – 2014-12-13 11:40:38
此外,'res [n] = 1'是錯誤的,你需要指定一個像這樣的字符'res [n] ='1'' – 2014-12-13 11:42:17
另外,雖然我確定'pow'函數有一個特例當第一個參數是'2'時,通常的方法是使用移位運算符,例如'1 << n'。另外,你有沒有檢查你得到的參數數量不超過16位?在今天的大多數平臺上,「int」是32位。 – 2014-12-13 11:47:01