如何将字符类型变量附加到字符串中?

How to append a char type variable to a string?

本文关键字:字符串 字符 类型变量      更新时间:2023-10-16

我想将一个包含密码的字符变量附加到一个字符串中,上面写着"您的密码是:"。当我为此使用追加函数时,我收到一条错误消息,说我不能将此函数与字符串一起使用。(我只能将其与无符号的 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;