Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : C: String rückwärts auslesen?



nul
05-12-2002, 18:26
Naja, der Titel sagt ja schon alles, gibt es eine Bibliiotheksfunktion um einen String unter C rückwärts auszulesen?

:p mfg nul

tkortkamp
05-12-2002, 18:39
Hatte mal eine Funktion gepostet:
http://www.mrunix.de/forums/showthread.php?s=&threadid=28984&highlight=string+r%FCckw%E4rts



#include <stdio.h>
#include <string.h>

void reverse(char s[])
{
int c,i,j;
for(i=0, j=strlen(s)-1; i<j; i++, j--)
{
c = s[i];
s[i] = s[j];
s[j] = c;
}
}

int main(int argc, char **argv)
{
char c[50] = "Hello World!";
reverse(c);
printf("%s\n", c); /* Ausgabe: !dlroW olleH */
return 0;
}


c ya,
Tobias

ramazan86
28-03-2013, 19:56
Hii,

könntest du bitte mir bitte mal die for schleife erklären :)
Ich verstehe nicht die anweisung, was da genau geschieht...

Besten Dank im voraus...
Mfg

quinte17
31-03-2013, 08:57
for(i=0, j=strlen(s)-1; i<j; i++, j--)
{
c = s[i];
s[i] = s[j];
s[j] = c;
}


jede for schleife hat 3 anzugebende elemente. Initialisierung der variablen:


i=0, j=strlen(s)-1

die eine variable zeigt auf den anfang die andere auf das ende des strings.

anschließend kommt die endebedingung:


i<j

d.h. die schleife geht wohl genau bis zur mitte.

nun kommt eine anweisung die meistens für das verändern der zählvariablen verwendet wird:


i++, j--

zähle i nach oben, da i für den anfang steht
zähle j nach unten, da j für das ende steht

im schleifenrumpf zu guter letzt werden die 2 buchstaben vertauscht. http://www.cs.utsa.edu/~wagner/CS2213/swap/swap.html hier noch ein beispiel für mögliche implementierungen