以下是我的字符串
char test[1000]="$GPGSA,A,3,14,20,22,25,31,32,,,,,,,2.4,1.4,1.9*3A
$GPGSV,4,1,16,31,76,060,35,14,28,070,34,20,32,309,32,32,61,309,32*72\n
$GPGSV,4,2,16,25,21,053,29,24,37,258,29,23,14,277,27,12,,,21*44\n
$GPGSV,4,3,16,22,13,133,20,11,20,272,,16,11,161,,30,,,*4F\
n$GPGSV,4,4,16,29,,,,28,,,,27,,,,26,,,*7E\n
$GPGGA,150427.8,4001.022852,N,10505.269674,W,1,06,1.4,1559.6,M,-21.0,M,,*53\n
$PQXFI,150427.8,4001.022852,N,10505.269674,W,1559.6,35.12,25.46,2.05*4A\n
$GPVTG,nan,T,nan,M,0.0,N,0.0,K,A*23\n
$GPRMC,150427.8,A,4001.022852,N,10505.269674,W,0.0,,280611,,,A*50";
我想获得字符串
"$GPGGA,150427.8,4001.022852,N,10505.269674,W,1,06,1.4,1559.6,M,-21.0,M,,*53\n"
使用C语言从上面的大字符串。
请帮帮我。
答案 0 :(得分:2)
你说你想要哪一行,但你没有说明原因。如果你说这条线是什么,使它成为你追求的线,那么我可以评论你如何找到它。
但基本上,你可能想把字符串分成几行。您可以使用strtok()
打开\n
。然后,您可以一次检查一行。
答案 1 :(得分:2)
这看起来像GPS数据,并在许多应用程序中使用(和解析)。
http://mbed.org/users/todotani/notebook/gps-nmea-parser/
http://www.edaboard.com/thread204021.html
您可以通过重新使用其他一些开源解析器来节省一些时间。
答案 2 :(得分:1)
strstr()命令是标准C库的一部分,可用于查找字符串中的子字符串。
答案 3 :(得分:0)
这是一个高度优化的NMEA解析器,最初是为微控制器编写的:https://code.google.com/p/avr-nmea-gps-library/
GPS NMEA数据在nmea.cpp和nmea.h中处理,易于自定义/添加到您的项目中,因为这些类似乎封装了您需要的所有内容。
这里有趣的是,这段代码是为微控制器编写的,具有非常小的内存和处理能力,如果还需要性能,这个代码是一个非常快速的替代方案。