私はこのような文字列を持っています:
std::string string1 = "xjdfhfakdjs%54k34k.-jk34";
"" xjdfhfakdjs "のみを取得する必要がありますが、文字列は動的であり、ハードコードされていないため、長さなどがわからないため、%以降のすべてと%charを削除したいと思いました。
どうすればこれを行うことができますか?
私はこのような文字列を持っています:
std::string string1 = "xjdfhfakdjs%54k34k.-jk34";
"" xjdfhfakdjs "のみを取得する必要がありますが、文字列は動的であり、ハードコードされていないため、長さなどがわからないため、%以降のすべてと%charを削除したいと思いました。
どうすればこれを行うことができますか?
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'\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);
}
}
動的な文字列で機能するように簡単に変更できます。