如何在字符串之间添加多个字符?

问题描述 投票:0回答:1

我想在字符串中添加字符,例如'。','“','°'...以使其对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

c split arduino insert add
1个回答
0
投票

[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);
© www.soinside.com 2019 - 2024. All rights reserved.