Как узнать последний символ в строке c
Перейти к содержимому

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

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

другие ответы очень полные, и вы обязательно должны использовать их, если вы пытаетесь найти последний символ строки. Но если вы просто пытаетесь использовать условное (например, последний символ «g»), вы также можете сделать следующее:

использование массива символов (следите за неприятной пустой строкой или нулевым строковым аргументом!)

другое решение использует StringBuilder (который обычно используется для выполнения манупиляции строк, поскольку сама строка неизменяема.

еще один подход (больше для инструкции, чем для фактического использования):

здесь полная строка отменяется, а затем часть, которая не должна быть отменена, заменяется подстрокой. 😉

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

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

user avatar

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

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

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

Последний символ в строке

Во многих случаях конечные диапазоны байтов перекрывают набор символов ASCII. Проверки битевисе можно безопасно использовать для любых управляющих символов (менее 32).

Рассмотрим следующую строку кода, которая может проверить, является ли последний символ в строке символом обратной косой черты:

Поскольку strlen не поддерживает MBCS, он возвращает число байтов, а не число символов в многобайтовой строке. Кроме того, обратите внимание, что в некоторых кодовых страницах (например, 932), «\» (0x5C) является допустимым младшим байтом ( sz является строкой C).

Одно из возможных решений заключается в перезаписи кода следующим образом:

В этом коде используются функции _mbsrchr MBCS и _mbsinc . Поскольку эти функции поддерживают MBCS, они могут различать символ «\» и младший байт «\». Код выполняет некоторое действие, если последний символ в строке имеет значение null (‘ \ 0 ‘).

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *