C++ 将字符串指定给结构';s属性
我正在尝试初始化main()中的数组。但出现错误。 下面是代码的外观:C++ 将字符串指定给结构';s属性,c++,C++,我正在尝试初始化main()中的数组。但出现错误。 下面是代码的外观: #include<iostream> #include<string.h> using namespace std; class word { public: char str[20]; }; int main() { word a; word b; a.str[]="12345"; b.str[]="67"; }
#include<iostream>
#include<string.h>
using namespace std;
class word
{
public:
char str[20];
};
int main()
{
word a;
word b;
a.str[]="12345";
b.str[]="67";
}
#包括
#包括
使用名称空间std;
类词
{
公众:
char-str[20];
};
int main()
{
a字;
b字;
a、 str[]=“12345”;
b、 str[]=“67”;
}
“a”和“b”是单词类的两个对象。如果使用的是C字符串,则需要将其复制到:
intmain()
{
a字;
b字;
strncpy(a.str,“12345”,sizeof(a.str));
strncpy(b.str,“67”,b.str的大小);
}
如果您想更有效地使用C++,请考虑使用<代码> STD::String >:
#包括
#包括
类词
{
公众:
std::string str;//接受std::前缀,它的存在是有原因的
};
int main()
{
a字;
b字;
a、 str=“12345”;
b、 str=“67”;
}
这里的作业非常简单
注意:原来的代码有语法错误,因为<代码> .STR[]=…< /Code >不是有效的C++。
[]
部分表示“未知/任意长度的数组”,可用于函数签名,但不能用于赋值。您可以执行a.str[n]='x'
,但这只指定一个字符
如果使用的是C字符串,则需要将其复制到:
intmain()
{
a字;
b字;
strncpy(a.str,“12345”,sizeof(a.str));
strncpy(b.str,“67”,b.str的大小);
}
如果您想更有效地使用C++,请考虑使用<代码> STD::String >:
#包括
#包括
类词
{
公众:
std::string str;//接受std::前缀,它的存在是有原因的
};
int main()
{
a字;
b字;
a、 str=“12345”;
b、 str=“67”;
}
这里的作业非常简单
注意:原来的代码有语法错误,因为<代码> .STR[]=…< /Code >不是有效的C++。
[]
部分表示“未知/任意长度的数组”,可用于函数签名,但不能用于赋值。您可以执行a.str[n]='x'
,但这只指定一个字符
我建议你。意思是:保持数据成员的隐私;公开公共方法以访问私有数据成员(获取和设置)。
在可能的情况下,使用不可变的数据(在构造时写入,永不更改)。
您可以在中联机使用代码
#包括
#包括
使用名称空间std;
类词
{
常量字符串str;
公众:
单词(常量字符串&w):str(w){}
单词(const char*w):str(w){
常量字符串&get()常量{return str;}
};
int main()
{
a字(“12345”);
b字(“67”);
我不能建议你。
含义:保持数据成员私有;公开访问私有数据成员(获取和设置)的公共方法。
在可能的情况下,使用不可变的数据(在构造时写入,永不更改)。
您可以在中联机使用代码
#包括
#包括
使用名称空间std;
类词
{
常量字符串str;
公众:
单词(常量字符串&w):str(w){}
单词(const char*w):str(w){
常量字符串&get()常量{return str;}
};
int main()
{
a字(“12345”);
b字(“67”);
不能说“出错”。相反,请在您的问题中包含准确的错误文本,以便我们准确了解问题所在。不同的编译器有不同的抱怨。您不需要char str[]
这里。您需要的是string str
。如果您坚持使用char str[]
,您需要使用memcpy
或strcpy
将字符复制到其中。不要说“出错”。相反,请在您的问题中包含准确的错误文本,以便我们准确了解问题所在。不同的编译器有不同的投诉。您不需要char str[]
这里。你需要的是string str
。如果你坚持使用char str[]
,你需要使用memcpy
或strcpy
将char复制到其中。为什么你会建议对这样一个简单的结构进行封装?为什么你会建议对这样一个简单的结构进行封装?
#include<iostream>
#include<string.h>
using namespace std;
class word
{
const string str;
public:
word(const string &w) : str(w) {}
word(const char *w) : str(w) {}
const string & get() const { return str; }
};
int main()
{
word a("12345");
word b("67");
cout << "Word a = " << a.get() << endl;
cout << "Word b = " << b.get() << endl;
}