如何从字符串中获取前两个字符并在另一个字符串中使用两个字符

Sno*_*288 1 c++ visual-c++

我想从我的字符串中获取前两个字符.让我说我的字符串dbdir = "Dir"和我的其他字符串test = "20122".我想从test中获取前两个字符并将其与dbdir字符串组合.所以结果将是字符串组合= Dir20然后我想在另一个字符串中使用组合字符串作为文件.

这是我的代码

std::string dbdir = "Dir";
std::string test = "20122";

//strip first two chars from test//
std::string result_of_test_strip = ;

std::string combined = ""+ dbdir + result +"";
CString fileToOpen = "\"\\\\CAR\\VOL1\\Docs\\PRE\\15\\" + result_of_test_strip.c_str() +  "\\" + filenum.c_str() + ".prt" + "\"";
Run Code Online (Sandbox Code Playgroud)

建议的答案@therainmaker

      std::string dbdir = "Dir";
      std::string test = "20122";
      std::string result = test.substr(0, 2); 
      std::string combined = dbdir + result;

      CString fileToOpen = "\"\\\\CAR\\VOL1\\Docs\\PRE\\15\\" + combined.c_str() + "\\" + filenum.c_str() + ".prt" + "\"";
Run Code Online (Sandbox Code Playgroud)

我在CString fileToOpen --->中得到此错误

错误C2110:无法添加两个指针执行cl.exe时出错.

the*_*ker 11

您可以使用该substr函数来提取字符串的任何相关部分.

在你的情况下,要提取前两个字符,你可以写

string first_two = test.substr(0, 2) // take a substring of test starting at position 0 with 2 characters
Run Code Online (Sandbox Code Playgroud)

前两个字符的另一种方法可能是

string first_two;
first_two.push_back(test[0]);
first_two.push_back(test[1]);
Run Code Online (Sandbox Code Playgroud)

此外,在您的string_combined行中,您不需要""在开头和结尾添加空字符串.以下行也可以使用:

string combined = dbdir + result;
Run Code Online (Sandbox Code Playgroud)