Как определить последний символ строки?

Так вот, проблема заключается в тот что нужно определить последний символ строки (который является "<"), если таков имеется триггернуть остальную часть кода, если нет выдать ошибку. То есть если в конце строки имеется символ < он должен запускать остальную часть кода. Я новичок без понятия как это делается.. Очень глупый вопрос но таково задание..(


Ответы (1 шт):

Автор решения: Arty

Ниже привожу код, как можно определить последний символ внутри if, используя strlen, как предлагал @avp.

В коде ниже я предполагаю что указатель s на строку (который должен быть типа char *) уже как то заполнен, как угодно, я для примера его заполнил фиксированной строкой, как char s[100] = "abc<";.

Дополнительная проверка s[0] && обязательная т.к. если строка пустая (0 символов) то s[strlen(s) - 1] выйдет за границы массива, а точнее даже прыгнет далеко в несуществующую память и будет крэш программы. Если у вас указатель на строку может быть ещё нулевой иногда то проверку нужно сделать даже такой s && s[0] &&.

Попробовать онлайн!

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

int main() {
    char s[100] = "abc<";
    if (s[0] && s[strlen(s) - 1] == '<')
        printf("Last sym is <\n");
    else
        printf("Last sym is not <\n");
}
→ Ссылка