我有这个功能。
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 为“long”,则 DemoInput 变为“LONG\\r”
我考虑过使用正则表达式(“[:upper:]”),但认为必须有一种更简单的方法来做到这一点。例如,我发现 posix regex 比 python regex 更复杂一些。