chr() in C?
MarS919 08.02.2002 - 11:54 1444 19
manalishi
tl;dr
|
naja, um einen string bzw. ein zeichen in einem string zu lokalisieren, wird idR die funktion strstr verwendet. kurzer auszug aus der definition von strstr: strstr Synopsis #include <string.h> char *strstr(const char *s1, const char *s2); Description The strstr function locates the first occurrence in the string pointed to by s1 of the sequence of characters (excluding the terminating null character) in the string pointed to by s2. Returns The strstr function returns a pointer to the located string, or a null pointer if the string is not found. If s2 points to a string with zero length, the function returns s1. ich hoffe das hilft dir weiter. mfG manalishi
|
that
ModeratorHoffnungsloser Optimist
|
Mein erlaubter Zeichensatz (müssen wir verwenden) ist ein einziger String. Ich muss jetzt mit dem ASCII-Wert jedes einzelnen Zeichens erfahren, an wievielter Stelle (Index) das Zeichen im Zeichensatz steht. Mit diesem Wert kann ich dann in der Verschlüsselung weiterrechnen. Nur: diesen Wert krieg ich nicht, ich weiß einfach nicht, wie. Wenn s ein String ist, dann ist s[x] das Zeichen an Stelle x (mit 0 beginnend). Um ein Zeichen zu suchen, gibt es die Funktion strchr. Wenn du den Index haben willst, dann: char text[] = "ABC";
char charset[] = "EDCBA";
int len = strlen(text);
for (int i = 0; i < len; i++) {
char *p = strchr(charset, text[i]);
if (p)
int index = p - charset;
}
Bearbeitet von that am 09.02.2002, 00:32
|
MarS919
Little Overclocker
|
dh i kann morgn gscheid saufn, weil i am sonntag den kater sowieso net mehr erleb
Danke, aber was machst du in der fettgedruckten Zeile?
|
that
ModeratorHoffnungsloser Optimist
|
Danke, aber was machst du in der fettgedruckten Zeile? strchr liefert einen Pointer auf das gefundene Zeichen. Du willst aber den Index. Der Index ist also die Adresse des gefundenen Zeichens abzüglich der Adresse des Anfangs des Strings.
|
MarS919
Little Overclocker
|
Funzt hervorragend, vielen Dank. Habe keine Fragen mehr.
|