10進文字列をcharに変換する

数値の文字列をその値を含む char に変換する方法はありますか?たとえば、文字列 "128"は 128 の値を保持する char に変換する必要があります。

2
@WTPはその範囲にある数字です。
追加された 著者 Sinjuice,
追加された 著者 Ben Voigt,
文字列の数値が <0 または> 255 の場合はどうなりますか?
追加された 著者 user142019,

4 答え

はい... Cさんからatoi

char mychar = (char)atoi("128");

もっとC ++指向のアプローチは...

template
    T fromString(const std::string& s)
{
     std::istringstream stream (s);
     T t;
     stream >> t;
     return t;
}

char mychar = (char)fromString(mycppstring);
5
追加された

atoi のCスタイルがありますが、 int に変換します。自分で char にキャストする必要があります。

C ++スタイルのソリューション(より安全です)では、

string input("128");
stringstream ss(str);
int num;
if((ss >> num).fail()) { 
   //invalid format or other error
}

char result = (char)num;
4
追加された

場合によります。 char が符号付きで8ビットの場合、 "128"を10進数の char に変換することはできません。符号付き8ビット値の最大正の値は127です。

これは本当に賢明な答えですが、ある時点でこれを知っているはずです。

1
追加された

atoi を使用できます。これで整数128が得られます。これを char にキャストすれば完了です。

char c = (char) atoi("128");
0
追加された