Svetelektro.com

Svetelektro.com

Meno:
Heslo:
SVETELEKTRO • Ziskanie hodnoty z retazca

Ziskanie hodnoty z retazca

C,C++,C#

Moderátori: psichac, Moderátori

Ziskanie hodnoty z retazca

Odosla┼ąod bebeno28 » 20 J├║l 2017, 21:28

Ahojte.

Pros├şm V├ís viete mi niekto poradit ako z├şskam z retazca znakov pozadovan├║ hodnotu a previest ju na integer?

P├ş┼íem si kod v Arduino prostred├ş a neviem pr├şs┼ą ako ked pr├şjmem String v tvare GET /58 HTTP/1.1 ako z toho viem dostat ciselnu hodnotu za lom├ştkom ?
C├şslo bude vzdy od 0 po 100 .
Samozrejme potom to previest na Integer.

Dakujem
bebeno28
St├íly ─Źlen
St├íly ─Źlen
Pr├şspevky: 175
Zalo┼żen├Ż: 16.09.2012
Bydlisko: Trnava
Karma: 0

Re: Ziskanie hodnoty z retazca

Odosla┼ąod hen » 20 J├║l 2017, 23:16

neotestoval som to, tak┼że sa tam mo┼żno n├íjdu chyby, sk├┤r ako in┼ípir├ícia jedn├ęho z rie┼íen├ş...
─î├şslo za lom├ştkom sa mus├ş za─Ź├şna┼ą na poz├şcii 5, ─Źi┼że sa predpoklad├í ┼że re┼ąazec bude v┼żdy v tvare "GET /..."
K├│d: Vybra┼ą v┼íetko
String str = "GET /58 HTTP/1.1";
int base = 1;
int result = 0;

for(int i=7; i>4; i--)
{
   char digit = str.charAt(i);
   if(digit>='0' && digit<='9')
   {
      result = result+base*(digit-'0');
      base=base*10;
   }
}
Serial.print(result);
hen
Okoloid├║ci
Okoloid├║ci
Pr├şspevky: 4
Zalo┼żen├Ż: 12.12.2016
Bydlisko: BA
Karma: 0

Re: Ziskanie hodnoty z retazca

Odosla┼ąod jirka.jirka. » 21 J├║l 2017, 10:58

Vyzkou┼íeno a funk─Źn├ş:

Prom─Ťnou potom najde┼í v hodnot─Ť cislo

EDIT: je┼ít─Ť jsem to tro┼íku upravil. Vymazal jsem sprintf, p┼Öidal podle ─Źeho to parsovat. A┼Ą se ta funkce d├í pou┼ż├şt i jinde.

Jinak dopln├şm. Testov├íno a odlad─Ťno zde: https://codepad.remoteinterview.io
K├│d: Vybra┼ą v┼íetko
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <inttypes.h>

char string[] = "GET /10 HTTP/1.1";

/*Funkce, ktera provede extrakci dat z retezce*/
/*Velice jednoduse reseno*/
int dataven(char prikaz[], char *data[], char podleceho[])
{
    char *ch; //promenna pointer
    int i=0;
   
    ch = strtok(string, podleceho);    //najde prvni oddelovac a nahradi ho \0, dale se najde zacat umisteni retezce (adresa)
   
    while (ch != NULL)
    {
        //printf("%s\n", ch);
        ch = strtok(NULL, podleceho);    //nyni najde dalsi oddelovac a jeho adresu umisti do ch, potom se vypise, atd, atd az do zblbnuti
        data[i++] = ch;   
        i++;
    }
}

int main() {
    char *data[80];    //vystupni data
    char rozdel[] = " /";
    dataven(string, data, rozdel); //funkce pro extrakci dat
   
    int cislo = atoi(*data);    //konverze string to int
    printf("%d", cislo);    //no a uu enom vypis, ze to funguje
   
    return 0;
}
Pr├şlohy
output.JPG
jirka.jirka.
Obr├ízok pou┼ż├şvate─ża
Pokro─Źil├Ż ─Źlen
Pokro─Źil├Ż ─Źlen
Pr├şspevky: 922
Zalo┼żen├Ż: 17.10.2008
Bydlisko: Zl├şn
Karma: 9

Re: Ziskanie hodnoty z retazca

Odosla┼ąod jirka.jirka. » 21 J├║l 2017, 12:56

A Eclipse takt├ę┼ż souhlas├ş. :-) Ono zde taky nen├ş nic, co by nem─Ťlo fungovat. Ur─Źit─Ť se tato funkce bude hodit i jin├Żm.

EDIT: Jenom se mus├şm omluvit, a┼ż te─Ć jsem si v┼íiml, ┼że to je pro arduino. Proto m─Ť pros├şm nebijte, ale nech├ím to tu, t┼Öeba u┼ż jenom pro pochopen├ş. :)
jirka.jirka.
Obr├ízok pou┼ż├şvate─ża
Pokro─Źil├Ż ─Źlen
Pokro─Źil├Ż ─Źlen
Pr├şspevky: 922
Zalo┼żen├Ż: 17.10.2008
Bydlisko: Zl├şn
Karma: 9

Re: Ziskanie hodnoty z retazca

Odosla┼ąod bebeno28 » 22 J├║l 2017, 21:48

Dakujem páni za reakciu. musim si to rozkodovat riadok po riadku aby som pochopil co to robi ja som v Ckode a Arduine zaciatocnik.

Inak asi som sa unahlis pretoze v konecnom dosledku bude ten link troska iny a vlastne budu dva tipy. napadla ma este jedna funkcia pre moj projekt ktorou to chcem vylepsit tak pred premenou bude este bude /value= alebo /set= a az potom bude hodnota ktoru budem potrebovat . ale to aby asi nemalo vadit. Tam si len zemni asi hodnoty aby som kontroloval ine znaky s Stringu. Teda ak chapem o co tu vlastne ide.

Dakujem
bebeno28
St├íly ─Źlen
St├íly ─Źlen
Pr├şspevky: 175
Zalo┼żen├Ż: 16.09.2012
Bydlisko: Trnava
Karma: 0

Re: Ziskanie hodnoty z retazca

Odosla┼ąod bebeno28 » 26 J├║l 2017, 17:17

Tak prisiel som na to ako to spravit v Arduine.

Toto je moj kod na ziskanie hodnoty zo Stringu.
Pr├şlohy
Capture.JPG
bebeno28
St├íly ─Źlen
St├íly ─Źlen
Pr├şspevky: 175
Zalo┼żen├Ż: 16.09.2012
Bydlisko: Trnava
Karma: 0


Nasp├Ą┼ą na C,C++,C#

Kto je pr├ştomn├Ż

U┼ż├şvatelia prezeraj├║ci si toto f├│rum: ┼Żiadny registrovan├Ż pou┼ż├şvate─ż a 0 host├ş.

Forums ©
Autor str├ínky je Ondrej Z├ívodsk├Ż(zawin), o graficky design sa star├í ─Żubo┼í Fabo(BUFU).

TOPlist

Powered by Copyright © UNITED-NUKE CMS. All Rights Reserved.
─îas potrebn├Ż k spracovaniu str├ínky 0.32 sek├║nd