c ++ получить последний (n) символ в строке - PullRequest
4 голосов
/ 16 декабря 2010

У меня есть строка, и я хочу получить, например, позицию последнего (.) В строке или любой символ, который я хочу проверить, но до сих пор я просто получаю заголовок.* спасибо

Ответы [ 4 ]

9 голосов
/ 16 декабря 2010

Является ли find_last_of тем, что вам нужно?

size_type find_last_of( const basic_string& str, size_type pos = npos ) const;

Находит последний символ, равный одному из символов в данной последовательности символов.Поиск заканчивается в pos, т. Е. В поиске рассматривается только подстрока [0, pos].Если npos передан как pos, будет выполнена поиск по всей строке.

6 голосов
/ 16 декабря 2010

Если ваша строка является массивом символов:

#include <cstdio>
#include <cstring>

int main(int argc, char** argv)
{
 char buf[32] = "my.little.example.string";
 char* lastDot = strrchr(buf, '.');
 printf("Position of last dot in string: %i", lastDot - buf);
 return 0;
}

.. или std :: string:

#include <cstdio>
#include <string>

int main(int argc, char** argv)
{
 std::string str = "my.little.example.string";
 printf("Position of last dot in string: %i", str.find_last_of('.'));
 return 0;
}
5 голосов
/ 22 апреля 2014
string lastN(string input)
{
     return input.substr(input.size() - n);
}
1 голос
/ 17 марта 2018
   #include <string>
    /**
    * return the last n characters of a string,
    * unless n >= length of the input or n <= 0, in which case return ""
    */
    string lastN(string input, int n)
    {
        int inputSize = input.size();
        return (n > 0 && inputSize > n) ? input.substr(inputSize - n) : "";
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...