我只是无法在c ++中转换不同的数据类型,我知道c ++是一种强类型语言所以,我
在这里使用static_cast
但是我遇到了错误消息
从'std :: string {aka std :: basic_string}'类型的static_cast无效到'int'类型
无效转换为'int'到'const char *'[-fpermissive]
#include <vector>
#include <iostream>
using namespace std;
int main()
{
string time;
string t2;
cin >> time;
int hrs;
for(int i=0;i!=':';i++)
{
t2[i]=time[i];
}
hrs=static_cast<int>(t2);
hrs=hrs+12;
t2=static_cast<string>(hrs);
for(int i=0;i!=':';i++)
{
time[i]=t2[i];
}
cout<<time;
return 0;
}
答案 0 :(得分:1)
从int(和converse)创建一个字符串不是强制转换。
一个演员正在使用一种类型的对象并使用它,未经修改,就好像它是另一种类型。
字符串是指向复杂结构的指针,至少包括一个字符数组。
int是直接表示数值的CPU级结构。
int可以表示为字符串以用于显示目的,但该表示需要大量计算。在给定平台上,所有int都使用完全相同的内存量(例如64位)。但是,字符串表示形式可能会有很大差异,对于任何给定的int值,都有几种常见的字符串表示形式。
零,作为64位平台上的int,由低电压的64位组成。作为字符串,它可以用单个字节“0”(第4和第5位上的高电压,所有其他位上的低电压),文本“零”,文本“0x0000000000000000”或任何其他几个约定来表示因各种原因而存在。然后你会遇到使用哪种字符编码方案的问题 - EBCDIC,ASCII,UTF-8,简体中文,UCS-2等。
从字符串中确定int需要解析器,并且从int生成字符串需要格式化程序。