使用下面的代码,我不知道如何删除出现在消息数组末尾的不需要的字符。由于我的其余代码,我必须使用char,不能使用字符串。 recvbuf也是一个char * recvbuf = new char
char* message=new char[140];
for (int i=1; i<141; i++){
message[i-1]=recvbuf[i];
}
printf("Message: %s\n", message);
delete[]recvbuf;
答案 0 :(得分:0)
虽然建议您使用字符串来实现此代码,但可以通过在char数组的末尾手动添加空字符\0
来解决此问题。
您可以将其介绍为:
char* message=new char[141];
for (int i=1; i<141; i++){
message[i-1]=recvbuf[i];
}
message[140] = '\0'; //newly introduced line.
printf("Message: %s\n", message);
delete[]recvbuf;
注意1:在初始化期间,阵列的大小从140增加到141,以便为最后的\0
字符腾出空间。
干杯!