C String nach blank trimmen?

SourceCoder

Lt. Commander
Registriert
Apr. 2012
Beiträge
1.586
Schönen guten Tag Zusammen,

ich habe ein Char Array in der steht "456783 0" oder "456783 000", nun wollte ich gern wissen wie ich String auf "456783" verkürzten kann.

Müsste eigentlich mit strtok, zu erledigen sein oder?
 
oder ganz einfach von hand? durchlaufen, bis zum leerzeichen oder ende, und bei leerzeichen, '\0' hinknallen.
 
Wie meinst du den per Hand? Der Char Array wird bei jedem Programm Aufruf mit neuen Werten gefüllt.
 
Alternativ: Über strstr ermitteln, ob und wo ein Leerzeichen ist und dann abschneiden.
Ist Geschmackssache, wie man es machen will... schenken wird es sich in der Praxis nicht, Fehler kann man in beiden Varianten genug selbst einbauen...


Von Hand: Du nutzst dir die C-gegebene Macht der Schleifen und gehst den String zeichenweise durch und schaust, ob du an der Stelle ein Leerzeichen hast... wenn ja, dann schneidest du ihn ab.
 
ststr, strtok... braucht im endeffekt fast mehr code als eine simple handgebastelte variante.

Code:
for (int i = 0; deinarray[i] != '\0'; i++) {
  if (deinarray[i] == ' ') {
     deinarray[i] = '\0';
     break;
  }
}
 
Ja stimmt, ist fast mehr Code...
Code:
char* pos = strstr(deinarray, " ");
if (pos) pos[0] = '\0';

Die Länge ist mir übrigens (fast) egal... wichtiger finde ich eigentlich, dass man sieht, was Code macht.
 
Danke an alle Beispiele, 1668mib deine Lösung sah gut aus nur gibt es mir nix zurück.

Mein Code:

Code:
char str[] = "512173         0";
                                
char* pos = strstr(str, " ");   
if (pos)                        
{                               
  pos[0] = '\0';                
  printf("Nr.  . %s\n", pos  ); 
}
 
Dein printf kann natürlich nichts ausgeben - wie auch. pos ist ja das ende...
 
Danke bu1137, hab es übersehnen xD:
 
Zurück
Oben