缓冲区中的垃圾字符
garbage characters in buffer
我具有此功能。
void cast(char *buf)
{
string str(buf);
string s=str.substr(0,5);
std::transform(s.begin(), s.end(), s.begin(),::toupper);
DemoInput=s;
}
*buf是客户发送的消息。我试图传达该消息,无论它将其剥离多长时间,都可以使其大写。如果消息> 5,则有效,但如果消息<5然后在其中有垃圾字符。例如:如果BUF为"长",则Demoinput变为"长\ r"
我考虑使用REGEX(" [:upper:]"),但认为必须有一种更简单的方法来执行此操作。我发现Posix Regex比Python Regex更复杂。
如果您只需要前5个字符,请不要复制整个buf
。这只是浪费了空间和时间。另外,您不应将任何内容复制到telnet控制字符r
。
void cast(char *buf)
{
size_t len = 0;
while (len < 5 && buf[len] != ' ' && buf[len] != 'r') {
++len;
}
string s(buf, len);
std::transform(s.begin(), s.end(), s.begin(),::toupper);
DemoInput=s;
}
为什么不更改将BUF提供的代码更改为铸件功能。附加' 0'表示字符串的末端,因为它听起来可能不会终止。
相关文章:
- C++字符*缓冲区的大小
- 将字符缓冲区强制转换为函数指针
- 来自无符号字符缓冲区的虚拟输出
- 如何在C++中将无符号字符缓冲区转换为双精度?
- 如何使 printf 以与 NSLog 相同的方式打印字符缓冲区?
- 将字符缓冲区转换为字符串
- 读取文件时字符缓冲区溢出
- 来自字符缓冲区的恐惧
- 为什么在我的测试程序中,从字符缓冲区读取一个int时,"std::copy"5x(!)比"
- C/C++ 从字符缓冲区读取以填充结构
- 具有输入无符号字符缓冲区C++的设备 IoControl
- 如何从字符 * 缓冲区中的位置 y 读取 x 个字符
- 从字符 * 缓冲区到 wchar_t * 缓冲区的内存
- 如何将字符 * 缓冲区转换为无符号的短 int * bufferSh
- 将windows BITMAP转换为PIX(无符号字符缓冲区)
- RAII字符缓冲区
- MFC-传递带有PostMessage From DLL的字符缓冲区
- 如何使用Gstreamer播放原始字符*缓冲区
- 在 Win32 中解析巨大的字符* 缓冲区
- 分配字符缓冲区以保存浮点的文本表示形式