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

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

  • автор:

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

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

Отслеживать
19.8k 6 6 золотых знаков 22 22 серебряных знака 56 56 бронзовых знаков
задан 23 дек 2020 в 18:36
Great Dreamer Great Dreamer
13 4 4 бронзовых знака
какой язык.
23 дек 2020 в 18:37
а вы в каком языке программирования новичок или вам общий алгоритм нужен?
23 дек 2020 в 18:37
@Danis, да вроде по-русски написал :)))
23 дек 2020 в 18:37
если это python то так string[-1] == «<" 23 дек 2020 в 18:39 Читайте про strlen 23 дек 2020 в 18:42

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

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

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

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

#include #include int main()

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

Элегантная и короткая альтернатива — это String.prototype.slice .

str.slice(-1); 

Отрицательный индекс начала разбивает строку с length+index , на length , будучи индексом -1 , последний символ извлекается:

"abc".slice(-1); // "c"; 

CMS 07 окт. 2010, в 20:09
Поделиться

Примечание: у массивов также есть метод slice() . — Их функциональные возможности концептуально аналогичны (частичные копии) ——— (на всякий случай, если вы читаете код и видите .slice() )

Peter Ajtai 07 окт. 2010, в 19:08
Это работает и для строк UTF-8?
Felipe Almeida 26 апр. 2013, в 00:45

Что вы подразумеваете под «строкой UTF-8»? Фраза не имеет смысла. Впрочем, строки JavaScript сами по себе — забавные звери: они представляют собой последовательности беззнаковых 16-битных целочисленных значений. Если ваша строка предназначена для хранения символов, то приведенный выше код возвращает последнее 16-битное значение, что было бы не красиво, если бы это была вторая часть суррогатной пары. Но опять же, что именно вы подразумеваете под «строкой UTF-8»? UTF-8 — это схема кодирования, которая может иметь смысл, если у вас есть байтовый массив, но ничего не значит, когда дело касается строк. Просто любопытно.

Ray Toal 15 дек. 2013, в 18:56

Проголосовал, потому что это не отвечает на вопрос. Предполагается, что пользователь хочет просто удалить символ, но что, если вам нужно захватить последний символ и ответить на основании того, что это такое? Ответы str.charAt () являются правильными.

gregtzar 03 март 2014, в 02:08

@Egg, кажется, вы не пробовали мой пример, str.slice(-1) действительно получает последний символ строки (как требуется для OP), так же, как если бы вы использовали str.charAt(str.length — 1) , попробуйте: «abc».slice(-1) . Я показывал здесь использование String.prototype.slice с отрицательным индексом. str.slice(-n) получит последние n символов исходной строки в качестве нового строкового значения. Дополнительная информация: developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…

CMS 03 март 2014, в 15:20

@CMS Вы правы, ваш метод действительно захватывает последний символ строки, не обрезая его. Хороший элегантный метод тоже. По некоторым причинам я думал, что это собиралось урезать те символы и вернуть урезанную последовательность. Извините за это, я чувствую себя идиотом за то, что не попробовал это первым.

gregtzar 04 март 2014, в 20:00

Ну и как мне получить позицию лазера? «abc » Теперь мне нужно получить 4 (в конце есть пробел). Как я могу это сделать?

stack 26 янв. 2016, в 22:14

Этот код может быть коротким и «сексуальным», но я не буду его использовать. Код не требует пояснений и не понятен. Используйте вместо этого charAt.

Yaron Levi 02 сен. 2016, в 23:04

@stack Позиция (считая от 1) последнего символа должна быть длиной строки, в основном .length Я не уверен, как она обрабатывает суррогатные пары.

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

Элегантная и короткая альтернатива — это String.prototype.slice .

str.slice(-1); 

Отрицательный индекс начала разбивает строку с length+index , на length , будучи индексом -1 , последний символ извлекается:

"abc".slice(-1); // "c"; 

CMS 07 окт. 2010, в 20:09
Поделиться

Примечание: у массивов также есть метод slice() . — Их функциональные возможности концептуально аналогичны (частичные копии) ——— (на всякий случай, если вы читаете код и видите .slice() )

Peter Ajtai 07 окт. 2010, в 19:08
Это работает и для строк UTF-8?
Felipe Almeida 26 апр. 2013, в 00:45

Что вы подразумеваете под «строкой UTF-8»? Фраза не имеет смысла. Впрочем, строки JavaScript сами по себе — забавные звери: они представляют собой последовательности беззнаковых 16-битных целочисленных значений. Если ваша строка предназначена для хранения символов, то приведенный выше код возвращает последнее 16-битное значение, что было бы не красиво, если бы это была вторая часть суррогатной пары. Но опять же, что именно вы подразумеваете под «строкой UTF-8»? UTF-8 — это схема кодирования, которая может иметь смысл, если у вас есть байтовый массив, но ничего не значит, когда дело касается строк. Просто любопытно.

Ray Toal 15 дек. 2013, в 18:56

Проголосовал, потому что это не отвечает на вопрос. Предполагается, что пользователь хочет просто удалить символ, но что, если вам нужно захватить последний символ и ответить на основании того, что это такое? Ответы str.charAt () являются правильными.

gregtzar 03 март 2014, в 02:08

@Egg, кажется, вы не пробовали мой пример, str.slice(-1) действительно получает последний символ строки (как требуется для OP), так же, как если бы вы использовали str.charAt(str.length — 1) , попробуйте: «abc».slice(-1) . Я показывал здесь использование String.prototype.slice с отрицательным индексом. str.slice(-n) получит последние n символов исходной строки в качестве нового строкового значения. Дополнительная информация: developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…

CMS 03 март 2014, в 15:20

@CMS Вы правы, ваш метод действительно захватывает последний символ строки, не обрезая его. Хороший элегантный метод тоже. По некоторым причинам я думал, что это собиралось урезать те символы и вернуть урезанную последовательность. Извините за это, я чувствую себя идиотом за то, что не попробовал это первым.

gregtzar 04 март 2014, в 20:00

Ну и как мне получить позицию лазера? «abc » Теперь мне нужно получить 4 (в конце есть пробел). Как я могу это сделать?

stack 26 янв. 2016, в 22:14

Этот код может быть коротким и «сексуальным», но я не буду его использовать. Код не требует пояснений и не понятен. Используйте вместо этого charAt.

Yaron Levi 02 сен. 2016, в 23:04

@stack Позиция (считая от 1) последнего символа должна быть длиной строки, в основном .length Я не уверен, как она обрабатывает суррогатные пары.

Строка string, последний символ

Author24 — интернет-сервис помощи студентам

Подскажите, совсем голову сломал)
В char массиве мы можем определить последний символ как ‘\0’
А как найти его в string?
Вот к примеру хочу узнать, является ли символ ‘W’ последним в строке
Задача звучит «найти кол-во слов, начинающихся и заканчивающихся буквой W»
Я сделал её, но не учёл случаи когда W — первый или последний символ строки
Как это сделать?)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
string S; cout  "Введите строку: "; getline(cin, S); system("cls"); cout  "Вы ввели строку: \n"; cout  S  endl; int i = 0, count = 0; while (i  S.size())  if (S[i + q - 1] == 'W' || (i + q -1) == S.size()) { count++; } } i++; }

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Используя указатель на переменную типа string, удалить последний символ этой переменной
есть указатель на переменную string,нужно удалить последний символ этой переменной работая с.

Вывести количество слов, у которых последний символ g. Строка заканчивается символом пробела
вывести кол-во слов у которых последний символ g. Строка заканчивается символом пробела

Определить, содержит ли строка (string) заданный символ
дана строка и определенный символ! нужно определить содержат ли слова данной строки заданный.

вывести символы в следующем порядке: первй символ из входного файла, последний символ, второй символ, предпоследний смвл
Дан файл in.txt, содержащий текст. Требуется вывести в файл out.txt символы в следующем порядке.

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

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