如何将字符类型变量附加到字符串中?
How to append a char type variable to a string?
我想将一个包含密码的字符变量附加到一个字符串中,上面写着"您的密码是:"。当我为此使用追加函数时,我收到一条错误消息,说我不能将此函数与字符串一起使用。(我只能将其与无符号的 int 和 char 一起使用。
char pass[64];
std::cout << "Enter a password: "; fgets(pass, 64, stdin);
std::string ssifre = "Your password is: "; ssifre.append(sizeof(pass), pass);
如果您知道解决此问题的另一种方法,请发表评论。我不需要使用此功能。
这应该有效:
ssifre += pass;
它使用 += 运算符
(请注意,正如@MichaelDoubez评论中提到的,ssifre.append(pass)
也可以。
ssifre.append(sizeof(pass), pass)
正在尝试调用append(size_type count, CharT ch)
重载版本,该版本附加ch
计数时间。 这是行不通的,因为pass[]
不是一个单一的char
,它是一个字符数组。
您需要改用append(const CharT* s)
重载版本(特别是因为fgets()
确保pass[]
将以 null 结尾,并且append(const CharT* s)
期望以 null 结尾的char*
字符串(。 固定的char[]
数组衰减为指向第一个char
元素的char*
指针:
ssifre.append(pass);
话虽如此,在这种情况下,您确实不应该首先使用char[]
数组。 您应该改为std::string
阅读:
std::string pass;
std::cout << "Enter a password: ";
std::getline(std::cin, pass);
std::string ssifre = "Your password is: " + pass;
相关文章:
- 如何将一个ostringstream十六进制字符串字符对转换为单个unit8t等价的二进制值
- 尝试将字符串/字符转换为整数会产生意外结果
- 为什么没有访问所有字符串字符?
- 将子字符串字符从字符串值转换为 int,然后将其分配给 int 变量
- 如何将字符串字符与结构数组进行比较?
- 将单个字符串/字符输入串行监视器
- 读取字符串字符时出错 - 对于数组中的字符串值
- C++ C 样式字符串/字符数组的大小 - 优化
- 读取字符串字符时出错
- C++ 使用 Strtok 读取字符串字符时出错
- 如何将 int 数组的 1 个元素转换为字符串/字符
- 在另一个字符串中逐个复制字符串字符
- 将字符串字符映射到矢量
- MBED RTOS将Float转换为字符串/字符阵列
- 如何使用字符串字符数组中的 ++ 运算符访问下一个字符串
- 如何比较C++中的单个字符串字符?
- 内部字符串/字符如何在 int 和 float 中存储
- 将十六进制转换为可打印的字符串/字符
- wcscpy_s后读取字符串字符时出错
- 检查字符串字符和长度