删除字符(以及字符)之后的所有内容

Removing everything after character (and also character)

本文关键字:字符 删除 之后      更新时间:2023-10-16

我有一个这样的字符串:

std::string string1 = "xjdfhfakdjs%54k34k.-jk34";

我只需要获取"xjdfhfakdjs",但字符串是动态的,不是硬编码的,所以我不知道它是什么,长度等,所以我想删除%之后的所有内容以及%字符。

我该怎么做?

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/

我相信

这会奏效。

std::string mystr = string1.substr(0, string1.find("%", 0));

做了一个类似 C 的事情,它以当前的形式工作,但肯定比上面显示的方法更笨拙:

#include <windows.h>
void main ()
{
    int i;
    wchar_t searchString[100];
    wchar_t * stringReturn;
    memset(searchString, L'', 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'';
        wcscpy_s(searchString, 100, stringReturn);
    }
}

可以轻松修改以适用于动态字符串。

string1.erase (string1.find ("%"), string1 [string1.length() - 1]);

这应该行得通。