使用static_cast将字符串转换为int,将int转换为字符串

时间:2016-03-12 04:29:48

标签: type-conversion static-cast

我只是无法在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;
} 

1 个答案:

答案 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生成字符串需要格式化程序。