很基本的问题。我在将 a 转换为指向实际字符的 a 时遇到char
问题char*
。谷歌搜索产生了有关 strcpy、string、sprintf 等的信息。经过多次尝试理解问题后,我仍然无法让它工作。
我有一个字符数组recv_msg
,其中包含我需要的字符的 ASCII 值。我需要将字符(而不是值)存储在 vectormsg
中。
我有的:
std::vector<char> msg;
char recv_msg[max_buffer_length];
...
int i;
for (i=0;i<bytes_transferred;i++) {
msg.push_back(recv_msg[i]);
}
// Problem: when I process my msg I see 49 instead of '1'.
如果我执行以下操作作为健全性检查,我确实得到了我需要的行为。也就是说,我看到的是“5”而不是 53(5 的 ASCII 码)。
std::vector<char*> msg;
...
int i;
char *val;
for (i=0;i<bytes_transferred;i++) {
msg.push_back(val);
}
// No problem: when I process my msg I see '5' instead of 53.
所以我需要将 ASCII 码值 ( char
) 转换为它们的字符表示 ( char *
)。我到底该怎么做?
我想在这个阶段解决问题,并且在处理消息时不必做ASCII -> 字符转换。