URL: https://www.overclockers.at/coding-stuff/bestimmte_zeichen_aus_c_string_entfernen_137689/page_1 - zur Vollversion wechseln!
ich frag einfach mal :-P
also ich habe ein kleines C Programm geschrieben, wo ich eine textdatei zeilenweise auslese.
ich möchte aber jetzt das aus diesen zeilen alle sonderzeichen und das minus (-) verschwindet. str_replace wie in PHP gibts ja leider nich in C :lol:
jemand ne idee ?
thx
per schleife alle zeichen durchgehen und alle gültigen zeichen in einen neuen string übernehmen.
tjo soweit bin ich auch
nur wie, schleife is klar nur hab ich:
variable = "dies-ist-ein-kleiner-text";
wie soll ich in dem string zeichen für zeichen durchgehen ? oO
thx 4 help
da musst du c lernen, weil das ist schon ziemlich grundlegendes wissen.
trotzdem, hier in der unoptimiertesten form ever:
Code:char source[] = "dies-ist-ein-kleiner-text", *temp = new char[strlen(source)]; int j = 0; for (int i=0;i != strlen(source);i++) { if (source[i] == '-') continue; temp[j++] = source[i]; } temp[j] = 0; char *output = strdup(temp);
Zitat von bBU.CyTrobIcich möchte aber jetzt das aus diesen zeilen alle sonderzeichen und das minus (-) verschwindet. str_replace wie in PHP gibts ja leider nich in C :lol:
@master99
jo reinstes c
@mat
dank dir, ich teste mal n bischen damit rum
hab halt nur noch php im kopf daher das unwissen... man vergisst so schnell
Zitat von bBU.CyTrobIchab halt nur noch php im kopf daher das unwissen... man vergisst so schnell
Zitat von bBU.CyTrobIcvariable = "dies-ist-ein-kleiner-text";
wie soll ich in dem string zeichen für zeichen durchgehen ? oO
hehe true, schöner wäre noch gewesen $varibale ="dies ist ein kleiner test"
Zitat von samriderich empfehle "the c programming language" von kernigham & ritche
sollte wunder bewirken...
sam
naja wenn er schon aus files auslesen kann wirda ned soo dumm sein!
also wie oben schon erwähnt:
zeile auslesen und in string rein
string zeichenweise durchgehn und mit switch alle ungültigen zeichen überprüfen
sobald das ding am ende ist ('\0' ...strings in c sind ja bekanntling null-terminiert!) weiterverarbeiten (wie auch immer du das machen willst)!
und dann nächste zeile auslesen das selbe spiel nochmal!
bis fread 'EOF' zurück gibt (end of file)!
ganz ohne zusätzlichen puffer geht es zb so:
Code:void strremove(char* source,char ch) { char* target=source; for (;(*target=*source)!=0;source++) if (*target!=ch) target++; }
hab schon was anderes gemacht
btw: ich bin nich blöd, mir fallen halt ab und zu die einfachsten sachen nicht mehr ein...
@mat, ja wie schön dass das grundlegendes is, das kenn ich noch nichteinmal und dabei soll ich nächstes jahr µcontroller programmieren!
Ich hätte es so gemacht:
Schleife durchlaufen lassen
Dann if die jedes zeichen einzeln überprüft
dann fehlt ma da plan weil ich nicht weiß wie ich die zeichen alle um ein feld weiter vor rücke
aber ich glaube das dürfte so ziemlich genau auf des rauskommen was mat hat
ah mir ist gerade eine lösung eingefallen für mein problem:
man kopiert einfach die zulässigen buchstaben in einen neuen string
Gottseidank ist die Welt ungerecht.Zitat von Burschi1620@mat, ja wie schön dass das grundlegendes is, das kenn ich noch nichteinmal und dabei soll ich nächstes jahr µcontroller programmieren!
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025