2010-12-15 7 views
4

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

благодаря

+7

Покажите нам свой код до сих пор. Что работает, и с чем вам нужна помощь? – abelenky 2010-12-15 22:53:44

+0

извините, я опаздываю, чтобы ответить на ваши комментарии, но у меня были некоторые проблемы с коннектикой на весь день, спасибо всем за ответы – 2010-12-16 16:27:10

ответ

8

ли find_last_of то, что вам нужно?

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

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

+0

Это не ответ, это догадка. – 2010-12-15 22:54:39

+10

Похоже на довольно хорошее предположение. Не могу сделать больше, чем догадываться с этим вопросом. – 2010-12-15 23:03:22

6

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

#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; 
} 

..or в станд :: строка:

#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
string lastN(string input) 
{ 
    return input.substr(input.size() - n); 
} 
Смежные вопросы