Zeichenkette

Gast #24223
Lesenswert?

Hallo
Wie erkenne ich in C das Ende einer Zeichenkette die über die UART 
eingelesen wurde?Mit der 0 komme ich nicht ganz klar.
so ungefähr sieht das ganze aus:

char a;
char i;
char string[20]; --->wie geht das wenn ich nicht weiß wie lang der 
String wird?

i=0;
do
 {
 a=getchar();
 string[i]=a;
 i++;
 }
while(a!=0); --->die 0 soll das ende der Zeichenkette sein

puts(string); --->den eingelesenen string ausgeben (als test)

Vielen Dank im voraus
Gruß Helge
Gast #24228
Lesenswert?

auszug von:
http://www.joern.de/handypc/handypc.htm


at+cmgr=1<CR>                       PC-->Handy: SMS Nr.1 lesen, <13>
+CMGR: "REC UNREAD","+491755759702",,"02/03/08,07:26:57+04"<CR>
                                    Handy-->PC: ungelesene 
SMS,Nr.,,Datum,Uhrzeit, <13>
Hallo, das ist ein Test<CR>         Handy-->PC: Text, <13>
<CR>                                Handy-->PC: <13>
OK<CR>                              Handy-->PC: OK<13>


also bringt <CR> das ganze in form.
gilt natürlich nur für den textmode.

ralf
Gast #24232
Lesenswert?

Also irgendwie stelle ich mich zu blöd an!
Auf die '\0' warten bringt nichts weil das Handy keine sendet.
Jetzt wollte ich einfach mal 10 Zeichen einlesen. Wenn das Handy aber 
nur 8 Zeichen sendet hängt die ganze Sache bei getchar() fest.
Gibts ne möglichkeit wenn kein Zeichen mehr anliegt das es dann 
irgendwie weiter geht? Hab schon mit if und else rum experimentiert aber 
alles ohne Erfolg.
Wenn ich nur 5 Zeichen einlese und das Handy zB. 8 Zeichen sendet ist 
alles iO..
Gruß Helge

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren