【发布时间】:2019-01-16 16:51:12
【问题描述】:
我是 C++ 新手。我想将IP address 附加到已经存在的char*
谁能告诉我怎么做。 提前致谢
【问题讨论】:
-
答案是...... 你不会在 C++ 中这样做 你使用
char*代替std::string进行字符串操作。在处理第三方库和 C 代码时,C 风格的字符串 (char*) 有时是必不可少的。另外,不要使用#define来定义文字。 -
注意
"\x42\x01"不是十六进制数字串;与{ 0x42, 0x01, 0x0 }相同,与{ 66, 1, 0 }相同。也就是说,它是一个包含这些数字的“字符串”,而不是这些数字的十六进制表示。 -
换句话说:您不应该涉及
printf或任何其他对字符串的转换。您希望将 IP 地址分解为字节并附加那些 数字,而不是它们的文本表示。 -
该命令的意图是什么?您是要在
char*中添加数字作为字符串,还是您实际上是要拥有二进制数据?您还想在命令中包含二进制数据(表示 IP 地址)还是想要 CIDR 格式的实际 IP 地址? -
在我看来,在这种情况下,您的
char *应该更像是char[](如果遵循 C),但我不会使用字符串在 C++ 中对其进行建模,而是使用std::vector<char>,因为您想在末尾追加。
标签: c++ arrays string append ip