使用 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 中生成字符串需要格式化程序。
我只是无法在 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 中生成字符串需要格式化程序。