为什么我的单个字符长度超过一个字符?

时间:2013-02-22 23:23:44

标签: c++ string vector char

我正在尝试创建一个由字符串的第一个字符组成的char*。 字符串保存在字符串向量内。

我尝试了以下内容:

char* value = &cards[0][0]; cout<<"Value "<<i<<" == "<<value<<endl;

char* value = &cards[0].front(); cout<<"Value "<<i<<" == "<<value<<endl;

('cards'是一个字符串向量,每个字符串是常规52张牌中的一张牌)

但无论我做什么, value 总是等于整个字符串。

如何将设为一个字母?

1 个答案:

答案 0 :(得分:6)

按照惯例,char*被解释为以null结尾的字符串文字。因此cout输出从value指向的字符到字符串末尾的所有内容。

如果您只想要一个字符,则可以使用char代替char*

char value = cards[0][0];
cout << "Value " << i << " == " << value << endl;