前言
本文主要总结了一些自己在进行字符串操作的一些疑问以及回答,便于自己之后在遇到类似问题的时候可以有据可查。方法不一定全,主要记录的是我在VS2019上面试着可以的方案。
如果大篇幅转载的话,标注好引用。
字符串拼接
类似于python可以对string类直接从采用加法的形式实现拼接。
//例子,将路径转为open (filepath) alias a的形式,
path = "open " + path;
path =path + " alias a";
字符串转多字符
string 类型转换为 LPCTSTR类型。
string s="abc";
return s.c_str();
字符串转字符指针
string s="abc";
return s.data();
获取工作区目录
这个主要就是利用的getcwd传参到cpath里面。
char* cpath = (char*)malloc(256 * sizeof(char));
getcwd(cpath, 256);
cout << "the current path is:" << cpath << endl;
free(cpath);
获取某个文件夹下所有子文件路径
这个的话是直接抄的,这里面的对于string进行assign
void getCurrentChildFile(string path, vector<string>fileList)
{
intptr_t hFile = 0;
struct _finddata_t fileinfo;
string p;
if ((hFile = _findfirst(p.assign(path).append("/*").c_str(), &fileinfo)) != -1)
{
do
{
if (strcmp(fileinfo.name, ".") != 0 && strcmp(fileinfo.name, "..") != 0)
{
fileList.push_back(p.assign(path).append("/").append(fileinfo.name));
}
cout << p << endl;
} while (_findnext(hFile, &fileinfo) == 0);
_findclose(hFile);
}
}
字符串切片,返回后4个字符
string s;
s.substr(s.size() - 4, s.size());