我在rmsg变量中收到一条消息。如果缓冲区中的第一个字符是“1”,我想删除这个字符并发送消息的其余部分。
有什么办法可以这样做吗:

if(rmsg[0]=='1')

//remove the first character in rmsg
strncpy(newbuf,rmsg,rmsglen)

如果这不是正确的方向,有人能告诉我怎么做吗?

最佳答案

我想这正是你在这种情况下想要达到的目标:

if (rmsg[0] == '1')
    memmove(rmsg, rmsg+1, strlen(rmsg));

在这里,在使用了我在上面发布的memmove()函数之后,您的rmsg字符串将包含它以前的内容,而不带第一个字符(即=='1'),所以现在您可以轻松地将它发送到任何您想要的地方。
现场演示:http://ideone.com/1dJjAn
有关memmove()函数的详细信息:http://www.cplusplus.com/reference/cstring/memmove/

10-08 07:04