c++ - 为什么我的单个字符不止一个字符长?

标签 c++ string vector char

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

我尝试了以下方法:

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

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

('cards' 是一个字符串 vector ,每个字符串是一个普通的 52 张卡片组中的一张卡片)

但无论我做什么, 始终等于整个字符串。

如何使为单个字母?

最佳答案

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

如果你只想要一个字符,你可以使用 char 而不是 char*:

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

关于c++ - 为什么我的单个字符不止一个字符长?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15034909/

相关文章:

c - C 预处理器能够逐字符处理字符串吗?

c++ - 如何让 atoi() 函数在字符串上工作?

c++ - STL vector 分配与插入

您的计算机缺少 C++ boost 线程

C++动态数组和文件读取不能一起工作

java - java中的双数字格式化

C++ vector 内存

c++ - 从自己的程序中获取程序元数据

c++ - 将 C 样式字符串初始化为 NULL 与空字符串之间的区别

c++ - 如何修复( 'vector' : undeclared identifier ) in my header file?