2

整数値をカスタム文字列型として格納する構造体があります。

typedef char OneLine[MAX_LINE + 1];

そのため、 「12」を含む文字列をCに変換し たい場合がいくつかあります。

OneLine testString;
strcpy(testString, "12");

I'd like a way for me to convert testString to be "C"

これにどのように対処すればよいですか?

前もって感謝します。

4

3 に答える 3

4

を使用sscanfして「12」を整数12に変換できます。次に、フォーマットを使用sprintfして%x整数12を「C」に変換できます。

于 2012-10-22T22:58:14.610 に答える
1

変換は文字列ストリームを使用して行うことができます

#include <iostream>
#include <sstream>
#include <string>
#include <ios>

int main()
{
  char const *str = "12";
  std::istringstream iss( str );
  int val;

  if( !( iss >> val ) ) { 
    // handle error 
  }
  std::ostringstream oss;

  oss << std::hex << val;
  std::cout << oss.str() << std::endl;
}

または、C ++ 11を使用した少し冗長な方法

char const *str = "12";
auto val = std::stoi( str );

std::ostringstream oss;
oss << std::hex << val;
std::cout << oss.str() << std::endl;
于 2012-10-22T23:03:04.157 に答える
0

まず、これを手動で行う場合でも、文字列に char 配列を使用しないでください。を使用しstd::[w]stringます。

次に、次の方法でこれを行うことができますstd::[w][i|o]stringstream

istringstream iss("12");
int number;
iss >> number;

ostringstream oss;
oss << hex << number;

const string& hexNumber = oss.str();
// hexNumber now contains "C"
于 2012-10-22T23:13:26.373 に答える