返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++中字符串与整型及浮点型转换全攻略
  • 883
分享到

C++中字符串与整型及浮点型转换全攻略

2024-04-02 19:04:59 883人浏览 泡泡鱼
摘要

目录一、string 和 char []1. string 转 char [] 2. char [] 转 string二、char [] 与数字互转 1. char [] 转整型和浮

首先请出今日主角:stdlib.h (YYDS)

这个库包含有随机数,abs等许多通用函数,当然也有类型的转换

下面我们一点点来看如何完成格式转换

一、string 和 char []

1. string 转 char []

string 是一个类,而 char [] 的变量名本质上是一个地址,咋一看这俩好像不太好转换。

但是事实上我们正是可以通过地址的方式将string 中的值整体地迁移到 char [] 中:


#include <string.h>
#include <iOStream>
using namespace std;
int main() {
    string s = "123.123";
    char a[101];
    strcpy(a, s.c_str());
    // strcpy(a, s.data());  // 与上方语句等价,任选其一即可
    cout << a << endl;

    // 虽然传递的是地址,但是程序会将内容直接复制到 char [] 中,所以此处改变s不影响a
    s = "456.456";
    cout << a << endl;

    return 0;
}

输出内容:

123.123
123.123

2. char [] 转 string

代码:


#include <bits/stdc++.h>
using namespace std;
int main() {
    char a[100] = "123.123";
    string s = a;
    cout << s;
    return 0;
}

二、char [] 与数字互转

1. char [] 转整型和浮点型


#include <stdlib.h>
#include <iostream>
using namespace std;
int main() {
    char a_chars[101] = "123.123";
    int a_int = atoi(a_chars);
    double a_double = atof(a_chars);
    cout << a_int << endl;
    cout << a_double << endl;

    return 0;
}

输出:

123
123.123

用到了头文件 stdlib.h 中的 atoi() atof() 两个函数

当然这两个函数作为标准库成员,除了可以像上面这段代码这样完成强制类型转换,处理一些特殊情况也是完全OK


#include <stdlib.h>
#include <iostream>
using namespace std;
int main() {
    char a_chars[101] = "00123";
    int a_int = atoi(a_chars);
    cout << a_int << endl;

    char b_chars[101] = "-013.470";
    double b_double = atof(b_chars);
    cout << b_double << endl;

    return 0;
}

输出:

123
-13.47

如果数字较大需要转 long long long ,则使用的函数为 atol() atoll() ,用法与 atoi() 相同:


#include <stdlib.h>
#include <iostream>
using namespace std;
int main() {
    char a_chars[101] = "00123";
    long a_long = atol(a_chars);  // long
    cout << a_long << endl;
    long long a_long_long = atoll(a_chars);  // long long
    cout << a_long_long << endl;

    return 0;
}

2. 整型和浮点型 转char []


#include <stdio.h>
using namespace std;
int main() {
    char a[1001];
    sprintf(a, "%.10lf", 3.1415926535);
    printf("%s", a);

    return 0;
}

绝对没有比这更香的操作了

printf 输出到终端,sprintf 可以直接输出到字符串中。如果字符串中有内容会覆盖写入,类似于写文件

另外 to_string() 函数可以胜任这项工作

警告:这个函数没有测试过比赛是否可用,请谨慎选择!!


#include <iostream>
using namespace std;
int main() {
    string s = to_string(123);
    cout << s << endl;
    return 0;
}

3. 整型转 char [] (特殊函数实现)

警告!下面这段代码只有win能用,比赛都是不行的!!

看代码:


#include <stdlib.h>
#include <iostream>
using namespace std;
int main() {
    int INT = 123;
    long LONG = 123456;
    long long LONG_LONG = 123456789;
    char s[16] = {0};
    itoa(INT, s, 10);  // 要转换的数,存放结果的字符串,结果进制数(下同)
    cout << s << endl;
    ltoa(LONG, s, 10);
    cout << s << endl;
    lltoa(LONG_LONG, s, 10);  // 这里编译时有warning,原因不详
    cout << s << endl;

    return 0;
}

输出:

123
123456
123456789

atoi() atol() atoll() 反转一下就有了 itoa() ltoa() lltoa() , 还是比较好记的。

itoa() 为例,他接受三个参数,其中第三个表示输出字符串中使用的进制。这又可以在进制转换上帮我们大忙!


#include <stdlib.h>
#include <iostream>
using namespace std;
int main() {
    int INT = 12;
    char s[16] = {0};
    itoa(INT, s, 2);  // 12转二进制
    cout << s << endl;
    itoa(INT, s, 8);  // 转八进制
    cout << s << endl;
    itoa(INT, s, 16);  // 十六进制
    cout << s << endl;

    return 0;
}

输出:

1100
14
c

再次警告!上面这段代码只有win能用,比赛都是不行的!!

提一嘴:文中用到了 s.c_str() 的写法。如果你需要使用 printf() 输出 string 类型的字符串,也需要这样:


#include <stdio.h>
#include <string.h>
using namespace std;
int main() {
    string str = "123";
    printf("str:%s", str.c_str());
    // printf("str:%s", str);  // 这样写真的不行
 
    return 0;
}

到此这篇关于C++中字符串与整型及浮点型转换全攻略的文章就介绍到这了,更多相关C++中字符串与整型及浮点型转换全内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: C++中字符串与整型及浮点型转换全攻略

本文链接: https://lsjlt.com/news/135499.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • C++中字符串与整型及浮点型转换全攻略
    目录一、string 和 char []1. string 转 char [] 2. char [] 转 string二、char [] 与数字互转 1. char [] 转整型和浮...
    99+
    2024-04-02
  • c#字符串怎么转换整型
    要在 c# 中将字符串转换为整型,可以使用 int.parse() 方法。该方法接受一个字符串参数,并将其转换为指定的基数(默认为 10)的整型值。如果转换失败,将引发 formatex...
    99+
    2024-05-12
    c#
  • php怎么将浮点型转换成字符串
    本文操作环境:Windows7系统、PHP7.1版、DELL G3电脑php怎么将浮点型转换成字符串?PHP 中把 float 转换成字符串方法:number_format($float, 2, '.', ''...
    99+
    2021-11-19
    php
  • php如何将浮点型转换成字符串
    本篇内容主要讲解“php如何将浮点型转换成字符串”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php如何将浮点型转换成字符串”吧!php将浮点型转换成字符串的方法:1、创建一个PHP示例文件;2...
    99+
    2023-06-25
  • php中字符串如何转换整型
    小编给大家分享一下php中字符串如何转换整型,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!php字符串转换整型的方法:1、通过“intval($num);”方法将...
    99+
    2023-06-14
  • php字符串怎么转为浮点型
    本教程操作环境:windows7系统、PHP8.1版、DELL G3电脑php 字符串转换为浮点数的三种方法方法1、在要转换的字符串之前加上用括号括起来的目标类型目标类型有:(float)、(double)、(real):转换成浮...
    99+
    2024-04-02
  • python 如何将带小数的浮点型字符串转换为整数
    以下内容在python中完全可以接受: 将整数的字符串表示形式传递给 int 将float的字符串表示形式传递给 float 但是,如果你将float型的字符串传递给int将会得到错误。 >>>...
    99+
    2022-06-02
    python 带小数 浮点型字符串 转换整数
  • php怎么将字符串转为浮点型
    本教程操作环境:windows7系统、PHP7.1版,DELL G3电脑数据类型转换是指将变量或值从一种数据类型转换成其他数据类型。转换的方法有两种,分别是自动类型转换和强制类型转换。下面就来给大家介绍一下强制类型转换,看看将字符串转为浮点...
    99+
    2016-04-08
    php 字符串 浮点型
  • 怎么在C++中将长整型数转换为字符串
    这篇文章将为大家详细讲解有关怎么在C++中将长整型数转换为字符串,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。C++实现将长整型数转换为字符串#include <iostre...
    99+
    2023-06-14
  • python如何将一个整数或数值型字符串转换为浮点数
    这篇文章将为大家详细讲解有关python如何将一个整数或数值型字符串转换为浮点数,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。转为浮点类型将一个整数或数值型字符串转换为浮...
    99+
    2024-04-02
  • 如何在PHP中将整数型转换为字符串型?
    如何在PHP中将整数型转换为字符串型? 在PHP中,将整数型转换为字符串型非常简单。可以使用几种方法来实现这一转换,以下将介绍具体的代码示例。 方法一:使用 (string) 转换$i...
    99+
    2024-04-02
  • c语言整型怎么转换成字符型
    在C语言中,可以使用类型转换操作符(type casting operator)来将整型转换为字符型。 示例代码如下: int nu...
    99+
    2023-10-28
    c语言
  • C++实现LeetCode(6.字型转换字符串)
    [LeetCode] 6. ZigZag Conversion 之字型转换字符串 The string "PAYPALISHIRING" is written i...
    99+
    2024-04-02
  • c语言浮点型转换为整型的方法是什么
    C语言中浮点型转换为整型的方法有以下几种:1. 强制类型转换:使用强制类型转换运算符将浮点型变量转换为整型变量。例如:```cflo...
    99+
    2023-08-23
    c语言
  • php字符串怎么转化为浮点型数据
    本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑php字符串转化为浮点型数据方法1:在字符串变量之前加上用括号括起来的目标类型“(float)”、“(double)”或“(real)”(float)、(double)...
    99+
    2020-09-27
    php 字符串 浮点型
  • php字符串如何转化为浮点型数据
    本篇内容主要讲解“php字符串如何转化为浮点型数据”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php字符串如何转化为浮点型数据”吧!转化方法:1、在字符串变量之前加上用括号括起来的目标类型“(...
    99+
    2023-06-25
  • 教程:PHP中整数类型如何转换为字符串类型
    在PHP编程中,经常会遇到整数类型需要转换为字符串类型的情况。这种转换可以通过多种方法来实现,包括使用强制类型转换或者调用特定的函数。接下来将介绍几种常用的方法来实现整数类型向字符串类...
    99+
    2024-04-02
  • mysql中字符串如何转为整型
    本篇内容介绍了“mysql中字符串如何转为整型”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • mysql中浮点数类型包括字符串吗
    否,mysql 中的浮点数类型不包含字符串。浮点数类型(float、double)存储近似值,以二进制值表示。用于存储字符串的类型包括 varchar、char 和 text,以字符形式...
    99+
    2024-05-09
    mysql
  • C语言怎样把浮点数转换为字符串
    本篇文章为大家展示了C语言怎样把浮点数转换为字符串,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。把浮点数转换为字符串1、把float/double格式化输出到字符串标准的C语言提供了atof函数把字...
    99+
    2023-06-25
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作