Concatenate char[] and uint32_t in C++
Concatenate char[] and uint32_t in C++
我想与uint32_t串联char []以获取另一个char []结果:
char word[] = "hi";
uint32_t = 33;
char result[] = "hi33"; //How can I get this ???
目的是组装一些可以传递给此处描述的WriteData
方法的数据,并具有以下签名...
bool WriteData(char *buffer, unsigned int nbChar);
您会做:
std::string word = "hi";
uint32_t num = 33;
std::string result = word + std::to_string(num);
(如果您有using namespace std
,则没有std::
)
理想情况下,您不会使用char[]
,因为没有理由。
如有必要,可以从char[]
string
char word[] = "hi";
std::string result {word};
删除const
预选赛可能很危险,但是如果已知WriteData
之类的方法是安全的(即,不修改其参数的内容),则可以称为此
WriteData(const_cast<char *>(result.c_str()), result.length());
在这种情况下,您可以使用std :: string,但是当您选择char []时,您可以使用:
sprintf( result, "%s%u", word, num );
在使用字符串的情况下,您有几种方法:第一种方法是:
auto result = word + std::to_string(num);
第二种方法可以使用弦乐:
ostringstream oss;
oss << word << num;
结果可能是:
oss.str();
使用该库在Arduino的串行端口写入您应该这样做:
int _tmain(int argc, _TCHAR* argv[]) {
Serial* SP = new Serial("COM3");
HDC dc = GetDC(NULL);
char word[25];
uint8_t n;
uint32_t r, g, b;
while (SP->IsConnected()) {
n = sprintf_s(word,"%dr%dg%dbn",r,g,b);
SP->WriteData(word, n-1);
}
return 0;
}
sprintf_s返回要编写的缓冲区的长度,您可以将其用作写入函数的参数。
使用std::ostringstream
:
static const char word[] = "Elephant";
std::ostringstream stream;
stream << word << 33;
std::string text;
text = stream.str();
一种选择是:
std::string word = "hi";
std::uint32_t num = 33;
auto result = word + std::to_string(num);
相关文章:
- netcat command in c++
- Difference in displaying cv2 Mat
- C++ MFC Libraries in Travis CI
- 如何在OpenSSL中从configuration.h.in获取configuration.h
- 创建具有 new in 函数和"this is nullptr"异常的对象
- IN, OUT, INOUT Parameters
- 应用程序崩溃并显示"symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference"
- 有人安装"IITB Simplecpp in mac"吗?
- 从 C 样式字符串中删除子字符串 "in place" 在C++代码中
- 如何修复"error: ‘_1’ was not declared in this scope"?
- Softmax Implementation in C++
- 将 out/in out 参数与 if/switch 的 init 语句一起使用
- IF-nesting in c++
- Gurobi GRBModel and GRBmodel in C++
- Tensorflow Hub in C++
- Centos7 g++ "to_string is not in a member of std"
- InitializeCriticalSectionEx Not Located In KERNEL32.Dll
- 将 lambda 表达式传递给 std::function in C++
- @CPPFLAGS@在 Makefile.in 中意味着什么?
- std::async from std::async in windows xp