zeichenkette bis zum nächsten \n ausgeben
-
hallo!
hab einen pointer auf eine zeichenkette. möchte diese zeichenkette ausgeben mit printf aber nur bis zum nächsten \n. kann mir bitte wer mit nem kleinen codesegment weiterhelfen?
danke im voraus!
-
int p=strchr(text,'\n'); printf("%*s",p,text);//kann auch sein, daß du die Parameter vertauschen mußt
->holt die Feldbreite des ausgegebenen Strings aus einem int-Parameter.
-
Hallo,
du musst nur solange den Zeiger erhöhen, bis das '\n' gefunden wird. Das kann man z. B. mit ner while-Schleife bewerkstelligen.
-
ok! erhöhe den pointer also immer um eins, bis zum nächsten \n!
wie bekomme ich allerdings immer das erste zeichen der zeichenkette auf die der pointer zeigt?
-
FreedomRunner schrieb:
ok! erhöhe den pointer also immer um eins, bis zum nächsten \n!
wie bekomme ich allerdings immer das erste zeichen der zeichenkette auf die der pointer zeigt?char buffer[100]; char * p=buffer; char ch; while ( *p != '\n' && *p ) { ch = p[0]; ++p; }
Kurt
-
ZuK schrieb:
char buffer[100]; char * p=buffer; char ch; while ( *p != '\n' && *p ) { ch = p[0]; ++p; }
Kurt
Hier dürfte auch "ch=*p;" ausreichen
Außerdem ist wichtig zu beachten, daß du das Zeichen nach Möglichkeit vor dem Schleifenende weiterverarbeitest (z.B. ausgibst).
-
CStoll schrieb:
int p=strchr(text,'\n'); printf("%*s",p,text);
War das evtl. so gemeint?!:
int p = strchr(text, '\n') - text; printf("%.*s", p, text);