ОК, извините за плохой каламбур: P
Я закодировал старый трюк HAL => IBM
в C. Я только что прочитал первые несколько страниц в K & R, посвященныхих, и я подумал, что будет хорошей первой игрой с ними.
char evil[] = "HAL";
char *ptr = evil;
for (int i = 0; i < strlen(evil); ++i, ++ptr) {
(*ptr)++;
}
printf("%s\n", evil); // IBM
Моя проблема в том, что у меня есть две приращения переменных, i
и ptr
, и что-то подсказывает мне одну из нихявляется избыточным (возможно, я все еще не думаю * достаточно хорошо C).
Единственная причина, по которой я использую i
, состоит в том, чтобы определить, прочитали ли мы до конца строки.Есть ли способ проверить указатель, чтобы убедиться, что он достиг конца строки?
Обновить
Извините за путаницу в вопросе.Под я пропустил точку Я имел в виду, почему я должен использовать указатель, когда мне нужен инкрементный индекс, чтобы также проверить длину.Я мог бы просто использовать этот индекс для подбора правильного символа из массива.