c++ - 如何将字符变量存入二维字符变量

标签 c++ string char

我想将 user_uname 和 user_pwd 的值存储到 validuser[c][0] 和 validuser[c][1]。还要将“normaluser”字符串存储到 validuser[c][2]。 但它显示错误“无法将 char * 转换为 char”。这是我的代码:

char validuser[20][20];
int c;
char user_uname[20],user_pwd[20];
cout<<"\n Enter User Detail";
cout<<"\n enter Username:";
cin>>user_uname;
cout<<"\n Enter Password:";
cin>>user_pwd;
validuser[c][0] = user_uname;
validuser[c][1] = user_pwd;
validuser[c][2] = "normaluser";
c++;

最佳答案

你的 validuser是数组或字符的数组。您只能存储单个 char在每个位置,或者您可以将其用作“字符串”数组(字符数组)。如果你确实想使用 C 风格的字符串,你应该有第三个维度来做你正在尝试的事情,比如 char validuser[20][3][20] .

但是既然你用的是C++,为什么不用std::vector<std::string>呢?相当?并将用户名和密码存储在一个结构中,而不是作为连续的字符串。使用 C++ 字符串和 vector 将允许您使用任意长度的字符串或任意数量的用户,而无需事先知道数量或自行处理内存分配。

关于c++ - 如何将字符变量存入二维字符变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32969288/

相关文章:

c++ - MFC中背景绘制到位图的线程类型

c++ - 输入被切断

c++ - 用于匹配 C++ 字符串常量的正则表达式

c++ - 删除字符矩阵

分配 `ab` 时包含单个字符的字符

从 'char*' 到 'char' 的 Char 无效转换 [-fpermissive]

c++ - C/C++ 可以通过查询类来获取实例成员的 "list"?

c++ - 结构的 cudaMalloc 和相同结构的元素

c++ - 使用 asio 的线程安全协程

C++ 文件写入包括字符串的内存地址而不是内容