我有一个这样的字符串:
std::string string1 = "xjdfhfakdjs%54k34k.-jk34";
我只需要获得"" xjdfhfakdjs",但字符串是动态的,不是硬编码所以我不知道它是什么,长度等等所以我想删除%之后的所有内容,以及%char。
我该怎么做?
答案 0 :(得分:19)
std::string the_prefix_you_want = string1.substr(0, string1.find("%"));
有关详细信息,请参阅:http://www.cplusplus.com/reference/string/string/find/和http://www.cplusplus.com/reference/string/string/substr/
答案 1 :(得分:1)
std :: string mystr = string1.substr(0,string1.find(“%”,0));
我相信这会奏效。
答案 2 :(得分:0)
C类似的东西是否以当前形式工作,但肯定比上面显示的方法更笨重:
#include <windows.h>
void main ()
{
int i;
wchar_t searchString[100];
wchar_t * stringReturn;
memset(searchString, L'\0', sizeof(stringReturn));
wcscpy_s(searchString, 100, L"String\\ to search");
stringReturn = wcschr (searchString, '\\');
if (stringReturn)
{
for (i = 0; i < (int)(stringReturn - searchString); i++) stringReturn[i] = searchString[i];
stringReturn[i] = L'\0';
wcscpy_s(searchString, 100, stringReturn);
}
}
可以轻松修改以适用于动态字符串。