警告:字符常量对于其类型car而言太长second ='Sarim';

问题描述

我想制作一对int和string。 为:

pair<int,string> car ;
car.first = 10;
car.second = 'Sarim';
cout<<car.first<<endl;
cout<<car.second;

“ sarim”在输出中是否转换为“ m”?

enter image description here

解决方法

使用

car.second = "Sarim";

该对中的第二个是std::string,而不是字符,因此您可以提供std::stringconst char*来构造一个。

请注意,单引号用于字符,而我使用的双引号则是const char*,可用于构造std::string

Demo

,

r.second = 'Sarim';是错误的。单引号用于字符常量,而您所拥有的不是单个字符。 你想要

r.second = "Sarim";

用于多字符文字。

,

C ++中的 string double 引号(")标记,引号标记字符(因此仅存储一个字符)。警告是在这里告诉您,您的“字符”太大(实际上是因为它应该是字符串)。