[我制作一个随机字生成器,所以我使用time.h库来使用srand并生成一个随机数...如果随机数= 0,那么char(principal)='hola'。 但是在CMD中只显示了最后一个字符:((对不起,我的英文不好)
代码是:
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
int main()
{
int principal;
char principal1;
srand(time(NULL));
principal = rand() % 2;
if (principal == 0)
{
principal1 = 'hola';
cout << principal1 << endl;
}
system("pause");
return 0;
}
答案 0 :(得分:0)
在C和C ++中,单引号(')表示“字符”(或一个字母/数字/符号)。两个单引号之间只能有一个字符。例如:
'c'
'9'
'?'
'\n' // Newline character
'\0' // Null character
双引号(“)表示”字符串“。字符串文字(在引号之间键入的字符串)将被视为末尾添加了空字符的字符数组。这种类型的字符数组被称为“c字符串”(不要与微软的“CString”混淆。
"Hi" // Same as {'H', 'i', '\0'}
"Hello !\n" // Same as {'H', 'e', 'l', 'l', 'o', ' ', '!', '\n', '\0'}
尝试将字符串放在单引号内通常不好。它将您带入一些weird territory实现(即编译器)特定行为。
如果要处理字符串“hola”,则应使用std::string
对象来存储它。 (您可以使用char*
,但我建议您使用std::string
,直到您更好地了解这些差异。)