Roc*_*ket 1 c++ string string-concatenation
我正在使用一个函数来下载文件.
void downloadFile(const char* url, const char* fname) {
//..
}
Run Code Online (Sandbox Code Playgroud)
这被称为:
downloadFile("http://servera.com/file.txt", "/user/tmp/file.txt");
Run Code Online (Sandbox Code Playgroud)
这工作正常.
但我想将URL更改为数组中的值.该数组存储加密值,当解密时是字符串,所以我得到了问题error: cannot convert ‘std::basic_string<char>’ to ‘const char*’
我试过了:
string test = decode(foo[5]);
const char* t1= test.c_str();
downloadFile(t1 "filename.txt", "/user/tmp/file.txt");
downloadFile(t1 + "filename.txt", "/user/tmp/file.txt");
Run Code Online (Sandbox Code Playgroud)
和
downloadFile((decode(foo[5]).c_str()) + "filename.txt", "/user/tmp/file.txt");
Run Code Online (Sandbox Code Playgroud)
这使:
error: invalid operands of types ‘const char*’ and ‘const char [17]’ to binary ‘operator+’
我究竟做错了什么 ?
谢谢
C字符串不能连接+
.
std::string::+
改为使用:
downloadFile((test + "filename.txt").c_str(), "/user/tmp/file.txt");
Run Code Online (Sandbox Code Playgroud)
请注意,c_str
只返回指向std::string
内部字符数组的指针,因此它仅在执行downloadFile
函数期间有效.