11. december 2003 - 21:56Der er
16 kommentarer og 1 løsning
string replacement
Skal lave en funktion der kan erstatte noget i en string
har fx denne string: Char *Test = "Heysa med dig<13>Dette er en test. Der skulle gerne stå ET her: <49>"
Og så skal funktionen erstatte <???> med det char der har det nummer. den skal virke båede ved <?> og <??> og <???> Har bikset med det et stykke tid nu og kan ikke få det til at funke.
int main() { char test[] = "Heysa med dig<13>Dette er en test. Der skulle gerne stå ET her: <49>"; replace(test,"<13>","\n"); replace(test,"<49>","1"); printf("%s\n",test); return 0; }
output:
Heysa med dig Dette er en test. Der skulle gerne stσ ET her: 1
Tror du har mistforstået mig lidt.. Det skal virke fra 1 til 255.. Vil du så have jeg skal lave 255 replaces ? Findes der ikke en måde hvor den laver tallende indeni om til char ?
255 linjer med replace ser ikke ligefrem godt ud :| Havde fundet dit eksempel før jeg oprettede spørgsmålet men det der med at finde tal inde i strengen ud var mit store problem
Ved replace leder den jo hele strengen igennem. Det smarteste ville nok være at finde tegnet "<" og så se efter om en af de næste 4 var tegnet ">".. Har lavet en kode der finder den nøjagtige position af overstående.. Altså Jeg har hvor det er og hvor mange tegn det er.. Så skal jeg bare have lavet såden den copiere det ud i en char.. Det vil jo helt klart give betydelig mindre "arbejdsproccess.." tjek følgene kode: char *Test = "HEYSA<13>Med Dig"; int Laengde = strlen(Test); for(int E = 0; E < Laengde;E++) { char FinalChar; if(int(Test[E]) == 60) { int TempE = 2; while(TempE < 5) { if(int(Test[E + TempE]) == 62) break; TempE++; } if(TempE == 5) cout << "Fejl" << endl; else cout << "start:" << E + 1 << ". Laengde:" << TempE - 1 << endl; } } //Tror du der er chance for at du kan give et tip til resten ?
Det eneste jeg ikke kan finde ud af er er få copieret det ud i en anden char*(1-3 bogstaver).. Så kan jeg jo bare lave den char* om til en integer og chekke om den er 1 til 255 hvorefter jeg laver den om til char*(et tegn)
Hvad skal jeg sige ? ;) Stygt :P Jeg takker mange gange..
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.