我有一个结构,它将整数值存储为自定义字符串类型。
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"
我该如何解决这个问题?
提前致谢。
答案 0 :(得分:4)
您可以使用sscanf
将“12”转换为整数12.然后您可以使用sprintf
%x
格式将整数12转换为“C”
答案 1 :(得分:1)
转换可以使用stringstreams
完成#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;
答案 2 :(得分: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"