我想在字符串中添加字符,例如'。','“','°'...以使其对Google地图位置有效
代码是:
void loop() {
// print the string when a newline arrives:
if (stringComplete) {
String BB = inputString.substring(0, 6);
//String degree = "°";
//String comma = ;
//String dot = ".";
if (BB == signal) {
String LAT = inputString.substring(7, 17);
int LATperiod = LAT.indexOf('.');
int LATzero = LAT.indexOf('0');
if (LATzero == 0) {
LAT = LAT.substring(1);
}
LAT.setCharAt(2, '°');
LAT.setCharAt(5, '\'');
LAT.remove(5,1);
LAT.setCharAt(8, '.');
LAT.setCharAt(12, 'N');
String LON = inputString.substring(20, 31);
int LONperiod = LON.indexOf('.');
int LONTzero = LON.indexOf('0');
if (LONTzero == 0) {
LON = LON.substring(1);
}
LON.setCharAt(2, '°');
LON.setCharAt(5, '\'');
LON.remove(5,1);
LON.setCharAt(8, '.');
LON.setCharAt(12, 'E');
Serial.println("==LATITUDE==");
Serial.println(LAT);
Serial.println("==LONGITUDE==");
Serial.println(LON);
Serial.println("=========================");
}
输出:==纬度==2432.06746==经度==6713.13658
而且我想在此字符串中添加字符,如下所示:[24°32'06.746N 67°13'13.658E
[sscanf
+ sprintf
是您的解决方案。
首先让我们获取inputString的必要部分:
String LAT = inputString.substring(7, 17);
char deg[3], min[3], sec_main[3], sec_frac[4];
sscanf(LAT.c_str(), "%2s%2s.%2s%s", deg, min, sec_main, sec_frac);
然后,将所有这些解析的部分收集到一个字符串中:
char latitude[15];
sprintf(latitude, "%s°%s'%s.%s", deg, min, sec_main, sec_frac);