如何过滤部分字符
How can I filter a part of my char
我有一个char buffer[200];
,它的内容是(Serial.println(buffer)
的输出):
AT+CGPSINF=2
2,195941,4613.161699,N,608.476854,E,1,9,1.398636,435.450073,M,48.200287,M,,0000
OK
我只想在char fix[]
中有这个
2,195941,4613.161699,N,608.476854,E,1,9,1.398636,435.450073,M,48.200287,M,,0000
我花了很多时间处理这个代码,但没有成功
static int gps_read () {
read_AT_string("AT+CGPSINF=2",3000);
Serial.println(F("------- Show buffer------"));
Serial.println(buffer);
Serial.println(F("-------------------------n"));
char fix[BUFFERSIZE];
int z = 0;
int y = 0;
int w = 0;
for(y=0; y < BUFFERSIZE; y++)
{
if(buffer[y]==',') z++;
if(z > 0){
if(buffer[y] == 'n') break;
fix[w] = buffer[y];
w++;
}
//if(y==num)//if the command is right, run return
// y=strlen(buffer)+1;
}
Serial.println(F("------- Show Fix------"));
Serial.println(fix);
Serial.println(F("----------------------"));
我如何用看起来像的行填充和调整char fix[]
的大小
21959414613.161699,N,608.476854,E,1.9,1.398636435.450073,M,48.200287,M,,0000
在我上面的代码中,它打印出:
------- Show Fix------
,202653,4613.164908,N,608.479232,E,1,9,1.183249,427.253052,M,48.200226,M,,0000
b
----------------------
我输了第一个'2'
应该删除换行符、"b"和空格。
我这样解决,但我不满意。
char* gps_read (void) {
if(strstr(read_AT_string("AT+CGPSINF=2",3000),"OK") != NULL)
{
Serial.println(F("------- Show buffer------"));
Serial.println(buffer);
Serial.println(F("-------------------------n"));
char fix[BUFFERSIZE];
int z = 0;
int y = 0;
int w = 0;
for(y=0; y < BUFFERSIZE; y++)
{
if(buffer[y]==',') z++;
if(z > 0){
if(buffer[y] == 'n'){
fix[w-1]=' ';
break;
}
fix[w] = buffer[y+1];
w++;
}
}
Serial.println(F("------- Show Fix------"));
Serial.println(fix);
Serial.println(F("----------------------"));
return fix;
}
else
{
return "Error : no fix";
}
}
"2"并不重要,它不是显示。你怎样才能做得更好?
相关文章:
- C++字符*缓冲区的大小
- HEX值到wchar_t字符(UTF-8)的转换
- 为什么 Serial.println(<char[]>);返回随机字符?
- 我的字符计数代码计算错误.为什么
- 字符串-C++后显示的随机字符
- 将Integer转换为4字节的unsined字符矢量(按大端字节顺序)
- 如何在C++中从字符串中分割字符
- 为什么msgrcv()将垃圾字符馈送到缓冲区
- 指向指向字符数组的指针数组的指针
- 如何用转义符替换字符串中的所有特殊字符
- 为什么 sscanf 无法从一个字符串中读取uint64_t和字符?
- 比较字符数组
- 将字符指针十六进制转换为字符串并保存在文本文件C++中
- 使用Back_inserter从任何位置的输入字符中使用Back_inserter进行过滤数组字符串
- 在读取C++行时过滤非字母数字字符
- 使用Xerces C++过滤连续XML标记之间的格式化字符
- 如何过滤部分字符
- 在c++中使用fstream时,如何过滤掉控制和格式化字符?
- 我需要帮助在我的c++ ATM机代码,关于过滤掉字符或字符串
- SDL unicode键盘输入:过滤无字符输入