使用 static_cast 将字符串转换为 int 以及将 int 转换为字符串

conversion of string to int and int to string using static_cast

我只是无法在 C++ 中转换不同的数据类型,我知道 C++ 是一种强类型语言,所以,我 此处使用 static_cast 但我遇到问题,错误消息是

invalid static_cast from type 'std::string {aka std::basic_string}' to type 'int'
invalid conversion from 'int' to '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;
} 

从 int 生成字符串(反之亦然)不是强制转换。

强制转换采用一种类型的对象并在不修改的情况下使用它,就好像它是另一种类型一样。

字符串是指向至少包含一个字符数组的复杂结构的指针。

int是一种直接表示数值的CPU级结构。

出于显示目的,可以将 int 表示为字符串,但表示需要大量计算。在给定平台上,所有 int 使用完全相同的内存量(例如 64 位)。但是,字符串表示形式可能会有很大差异,对于任何给定的 int 值,都有几种常见的字符串表示形式。

零作为64位平台上的int,在低电压下由64位组成。作为一个字符串,它可以用单个字节“0”(第 4 位和第 5 位上的高电压,所有其他位上的低电压)、文本 "zero"、文本“0x0000000000000000”或几个中的任何一个来表示因各种原因而存在的其他公约。然后你就会进入使用哪种字符编码方案的问题——EBCDIC、ASCII、UTF-8、简体中文、UCS-2等

从字符串中确定 int 需要解析器,从 int 中生成字符串需要格式化程序。