Я хочу найти последний элемент строки без использования каких-либо функций.Кажется, мой код работает, но я не совсем уверен, почему он работает так, как работает, и был бы рад вводу.Вот код
#include <stdio.h>
char *find_last(char *s);
int main(void)
{
char string[] = {"This is an Example"};
find_last(string);
return 0;
}
char *find_last(char *s)
{
/* char last;*/
while (*s++ != 0) {}
printf("*s ist %c", *(s-2));
return 0;
}
Я не понимаю, почему я должен печатать * (s-2) вместо * (s-1), чтобы получить последний символ.(Чтобы вернуть еще одного персонажа, мне нужно только уменьшить еще один, то есть * (s-3)).
О, и, кроме того, кажется, что содержимое * s похоже на букву O (от меня до сих пор ошибочно принимается за ноль), независимо от строки-примера, протестированной с.Это почему?Я думал, что это должен быть ноль (0), потому что я увеличиваю указатель, пока он не достигнет двоичного нуля.
Спасибо за любую помощь!