3 Stimmen

Habe ich den Sinn von Zeigern verpasst?

OK, entschuldigen Sie das schlechte Wortspiel :P

Ich habe verschlüsselt den alten Trick der HAL => IBM in C. Ich habe gerade die ersten Seiten in K&R über sie gelesen, und ich dachte, es wäre ein gutes erstes Spiel mit ihnen.

char evil[] = "HAL";
char *ptr = evil;   
for (int i = 0; i < strlen(evil); ++i, ++ptr) {             
    (*ptr)++;           
}   
printf("%s\n", evil); // IBM

Mein Problem ist, dass ich zwei Variablen habe, die inkrementieren, i y ptr und irgendetwas sagt mir, dass einer von ihnen überflüssig ist (vielleicht bin ich immer noch nicht Denken C gut genug).

Der einzige Grund, warum ich die i ist es, festzustellen, ob wir bis zum Ende der Zeichenkette gelesen haben. Gibt es eine Möglichkeit, den Zeiger zu überprüfen, um zu sehen, ob er am Ende der Zeichenkette angekommen ist?

Update

Bitte entschuldigen Sie die Verwirrung, die durch die eigentliche Frage entstanden ist. Von habe ich das Thema verfehlt Ich meinte im Grunde, warum sollte ich einen Zeiger verwenden, wenn ich einen inkrementierenden Index benötigte, um auch die Länge zu überprüfen. Ich könnte nur diesen Index verwenden, um das richtige Zeichen aus dem Array zu subskribieren.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X