char letztes zeichen löschen

soeni1987

Mitglied
ich hab ein programm, bei dem ich aus einer textdatei zeilen einlese:

Code:
         fgets(acTmp,255,f);
                        SetWindowText(hwndEdit3,acTmp);  //ausgabe des Straße

diese ermittelte zeile schreib ich in ne eingabezeile, leider wird ans ende jeder Zeile jeweils ein | ausgegeben. das kommt warscheinlich von dem steuerzeichen für den zeilenumbruch. wie kann man nun von der char variable acTmp das letzte zeichen löschen. ich denke mann muss die länge von acTmp ermitteln und dann zeichen für seiten wieder in eine variable schreiben (ohne das letzte) aber wie?
 
Hallo soeni1987,

Kurz und knapp würde ich das so machen:

Code:
acTmp[strlen(acTmp)-1] = 0;

Das sollte das letze Zeichen eines C-Strings löschen.


mfg


Klaus D.
 
Danke, das bringt mich zu meinem nächsten wahnsinn, den ich einfach nicht verstehe,

in der datei steht: 1 \n

in worten: eins leerzeichen backslash n

wenn ich das auslese, zeigt er mir das auch an. nun möchte ich per ifabfrage testen, ob auch eins drinn steht.

ich hab mit dem oberen code das \n gelöscht und hätte nun "1 " aber auch "1" geht nicht.

nochmal der code:
Code:
         fgets(acTmp,255,f);
         acTmp[strlen(acTmp)-1] = 0;
                  
                  if (acTmp == "1 "){                
                        SetWindowText(hwndEdit14,acTmp);  //Ausgabe in Zeile                                              
                        }
 
Hi.

Strings sind in C lediglich Zeiger (Speicheradressen). Wenn du 2 Strings mit == vergleichst, vergleichst du nur die Zeiger. Diese sind fast nie gleich. Zum Verarbeiten von Strings mußt du Hilfsfunktionen aus dem <string.h> Header verwenden.
C:
if (strcmp(acTmp, "1 ") == 0) ...
Gruß
 
Zurück