使用 static_cast 将字符串转换为 int 以及将 int 转换为字符串
Conversion of string to int and int to string using static_cast
我只是无法在C++中转换不同的数据类型。我知道C++是一种强类型语言,所以,我在这里使用了static_cast
,但我面临一个错误消息的问题:
从类型"std::string {aka std::basic_string}"到类型"int"的无效static_cast从"int"到"const char*"的转换无效[-允许]
法典
#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 可以表示为字符串,但表示需要大量计算。 在给定的平台上,所有整数都使用完全相同的内存量(例如 64 位)。 但是,字符串表示形式可能会有很大差异,对于任何给定的 int 值,都有几种常见的字符串表示形式。
零作为 64 位平台上的 int,由低电压下的 64 位组成。 作为字符串,它可以用单个字节"0"(位 4 和 5 上的高压,所有其他位上的低电压)、文本"零"、文本"0x0000000000000000"或由于各种原因而存在的任何其他几个约定来表示。然后你会进入使用哪种字符编码方案的问题 - EBCDIC,ASCII,UTF-8,简体中文,UCS-2等。
从字符串确定 int 需要解析器,从 int 生成字符串需要格式化程序。
相关文章:
- 从"int*"强制转换为"unsigned int"会丢失精度错误
- 是否可以从int转换为enum类类型
- 如何在C++中将一个无符号的 int 转换为两个无符号的短裤?
- 功能样式转换从 'int' 到 'ItemType' 的匹配转换
- 将 int 数组转换为 std::vector<int*>
- 如何转换 int 变量并附加到常量 wchar_t*
- 类型转换<int>的舍入问题
- 在Objective-C中调用sqlite3数据库时,如何调用和转换int/NSNumber
- 转换 int -> 无符号长 长 是否由标准定义
- 简单的 int 到字符串转换..int to const char* 无效
- 如何将转换 int 除法键入为浮点数
- C++类型转换 int * 到类
- 预期的类型说明符,并且无法在初始化时转换“int*”
- 转换int并将其与char*连接
- 字符串流在转换int型时添加新行
- 转换int为字符串/char c++ /Arduino
- c# P-Invoke:如何转换INT fun(BYTE *bStream, UINT16 *nCount, const
- 类型转换(int**)和int(*)的区别
- 从"int"到"nodeType"的无效转换<int>
- 从无符号int构造对强制转换int的引用