zeichen aus string entfernen
-
Statt size_t hätte ich auch jeden Ganzahltyp nehmen können.
Bei meinen Compiler z.B. ist es nur eine andere Bezeichnung für unsigned integer.Aber size_t garantiert sozusagen, dass er einen ausreichend großen Wertebereich hat, um jede Adresse ansprechen zu können.
Sozusagen um Portabilität zu gewährleisten.
-
Nur der Vollständigkeit halber: Mir ist aufgefallen, dass die Funktione die Zahlen verkehrt herum einliest, also aus "a1b2c3" wird "321", nicht "123". Ich habe keine Ahnung warum das so ist??? Wie kann man dieses Problem umgehen?
-
Duke1979 schrieb:
Nur der Vollständigkeit halber: Mir ist aufgefallen, dass die Funktione die Zahlen verkehrt herum einliest, also aus "a1b2c3" wird "321", nicht "123". Wie kann man dieses Problem umgehen?
Woas is?
int main() { char str[256] = "a1b2c3"; trim(str); printf("%s\n", str); }
Also bei mir steht da 123 auf dem Bildschirm.
-
SeppSchrot schrieb:
Duke1979 schrieb:
Nur der Vollständigkeit halber: Mir ist aufgefallen, dass die Funktione die Zahlen verkehrt herum einliest, also aus "a1b2c3" wird "321", nicht "123". Wie kann man dieses Problem umgehen?
Woas is?
int main() { char str[256] = "a1b2c3"; trim(str); printf("%s\n", str); }
Also bei mir steht da 123 auf dem Bildschirm.
jupp
-
Oh man, sorry! ich habe darüber aus versehen eine FKT strrev aufgerufen. Da brauch ich mich nicht zu wundern... Vergesst was ich geschrieben habe!!!
-
Kleine Variante (→ Verwendung der Bibliotheksfunktion isdigit()):
#include <ctype.h> void trim(char* str) { size_t i = 0, j = 0; while (str[i]) { if (isdigit(str[i])) { str[j++] = str[i]; } i++; } str[j] = '\0'; }
-
moin ..mir wurde gesagt ich find hier die antwort die ich aber net sehe... nochmal mein anliegen...:
ich will aus einer zeilenreihe nur einen bestimmten abschnitt ausscheiden der sich aber immer ändern kann...was bliebt ist immer nur: Return-Path: < und >.
hab bis jetzt..
#include <stdio.h>
#include <string.h>
int main()
{char Test1[100] = "Return-Path: HertzBK@arcor.de";
char Test2[100] = "Return-Path: <";
char *Test3;Test3 = strstr(Test1, Test2);
Test3 = Test3 + strlen(Test2);printf("%s", Test3);
getchar();
return 0;
}also ergebniss bekommt ich "HertzBK@arcor.de>" raus... erwünscht ist aber "HertzBK@arcor.de".
wie mach ich das
thx
-
*--Test3 = '\0';
-
Test3[strlen(Test3)] = '\0';
-
Fast!
Test3[strlen(Test3)-1] = '\0';
Allerdings verändert man so auch den Quellstring, also in dem Falle Test1.
besser wär evtl.#include <stdio.h> #include <string.h> int main() { char Test1[100] = "Return-Path: <HertzBK@arcor.de>"; char Test2[100] = "Return-Path: <"; char Test3[100]; strcpy(Test3, strstr(Test1, Test2)+strlen(Test2)); Test3[strlen(Test3)-1] = '\0'; printf("%s", Test3); getchar(); return 0; }
-
sebbo#84 schrieb:
moin ..mir wurde gesagt ich find hier die antwort die ich aber net sehe...
Hab die Antwort in den anderen Thread "ausschneiden von wörtern" (den Du angestoßen hast) gestellt, weil er dort m. E. besser aufgehoben ist. Obwohl der Titel auch nicht ganz passend ist. Du willst ja schließlich nur e i n bestimmtes "Wort" ausschneiden.