【发布时间】:2019-09-01 12:20:18
【问题描述】:
您好,我对一些代码有疑问。 这段代码可以在这里工作吗?
我认为我需要使用#include cstring
我问了我的老师,他告诉我代码是好的,而且 它应该与#include string
一起使用这是正确的吗?有人可以解释一下吗?谢谢。
#include <iostream>
#include <string> //strcpy() works with string?
using namespace std;
class libraryBook{
private:
char title [80]; //cstring
int available;
public:
libraryBook(char initTitle[]);//cstring as argument
};
libraryBook::libraryBook(char initTitle[]){
strcpy(title, initTitle);
available = 1;
}
int main() {
libraryBook b1 ("computing"); //what would be the output without changing the code ?
return 0 ;
}
【问题讨论】:
-
既然你在 C++ 中,为什么不用
std::string而不是char的数组呢? -
我想你想要
#include <cstring>,而不是#include <string>得到strcpy。strcpy是一个很好的 ol' C 函数,所有 ol' C 的东西都在以 c 开头的标题中 -
如果要复制字符串字面量`.copy()'就是函数
-
就像@user4581301 说的,
strcpy是not in <string> -
旁注:
libraryBook(char initTitle[]);将像libraryBook(const char *initTitle);一样多才多艺,您将能够安全且无错误地使用字符串文字。在现代标准 C++ 中,libraryBook b1 ("computing");是完全非法的,以防止您意外写入只读存储。
标签: c++ class c-strings strcpy