Как добавить несколько символов между строкой? - PullRequest
0 голосов
/ 19 октября 2019

Я хочу добавить символ в моей строке, например '.', '"', '°' ... чтобы сделать его действительным для местоположения на карте 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("=========================");

        }

Вывод: == LATITUDE == 2432.06746 == LONGITUDE == 6713.13658

И я хочу добавить символы в этой строке, например: 24 ° 32'06.746N 67 ° 13'13.658E

1 Ответ

0 голосов
/ 19 октября 2019

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);
...