ros将接收到的字符串转换成数组C
时间: 2023-11-09 20:07:57 浏览: 166
blimpDataProcessing:将收集到的rosbag转移到状态空间转换对
在ROS中,可以使用字符串分割函数`split()`将接收到的字符串转换成数组。以下是一个示例代码:
```cpp
#include <ros/ros.h>
#include <std_msgs/String.h>
void callback(const std_msgs::String::ConstPtr& msg)
{
std::string str = msg->data;
std::vector<std::string> str_array;
boost::split(str_array, str, boost::is_any_of(" ")); // 使用空格分割字符串
for(int i = 0; i < str_array.size(); i++)
{
ROS_INFO("Received string array element %d: %s", i, str_array[i].c_str());
}
}
int main(int argc, char** argv)
{
ros::init(argc, argv, "string_to_array");
ros::NodeHandle nh;
ros::Subscriber sub = nh.subscribe<std_msgs::String>("input_string", 1000, callback);
ros::spin();
return 0;
}
```
在上述代码中,我们订阅了一个名为“input_string”的话题,并在回调函数中将接收到的字符串使用空格分割,并将得到的字符串数组打印出来。注意,在使用`split()`函数之前,需要包含`boost`库的头文件。
阅读全文