C++字符串与整数的相互转换

news2024/9/25 22:15:50

文章目录

    • 前言
    • 字符串转整数
      • stoi
      • isstringstream
      • atoi
    • 字符转整数
      • to_string
      • stringstream
      • sprintf
    • ASCII码转换

前言

题目大致为:

给一组数据,去掉里面的2,然后再返回结果

例如:

输入:{20, 66, 521, 2024}

输出:{0, 66, 51, 4}

思路是将数字转成字符串,然后去掉2,但是脑子没转过来,忘记接口了,用最原始方法转换的

字符串转整数

stoi

string类提供了一系列字符串转数字的接口(C++11引入):

文档:C++ Reference (cplusplus.com)

在这里插入图片描述

这里拿stoi举例:

int stoi (const string&  str, size_t* idx = nullptr, int base = 10);
int stoi (const wstring& str, size_t* idx = nullptr, int base = 10);
  • str:要转换的字符串
  • idx:结束未处理到的字符索引,默认为nullptr
  • base:数字进制,默认十进制
#include<iostream>
#include<string>
using namespace std;
int main()
{
	string str_dec = "1234, hello world";
	string str_hex = "40c3";
	string str_bin = "-110101";
	string str_auto = "0x7f";

	size_t sz;

	int i_dec = stoi(str_dec, &sz);
	int i_hex = stoi(str_hex, nullptr, 16);
	int i_bin = stoi(str_bin, nullptr, 2);
	int i_auto = stoi(str_auto,nullptr,0);	//自动识别

	cout << str_dec << ": " << i_dec << " + [" << str_dec.substr(sz) << "]" << endl;
	cout << str_hex << ": " << i_hex << endl;
	cout << str_bin << ": " << i_bin << endl;
	cout << str_auto << ": " << i_auto << endl;
}

isstringstream

从字符串流当中读取数据

文档:istringstream - C++ Reference (cplusplus.com)

#include <iostream>
#include <sstream>

int main() {
    std::string str = "123";
    std::istringstream iss(str);
    int num;
    iss >> num;
    if (iss.fail())
    {
        std::cerr << "failed" << std::endl;
    } else
    {
        std::cout << "Integer: " << num << std::endl;
    }
    return 0;
}

atoi

C语言也提供了转换接口:

在这里插入图片描述

atoi举例:

int atoi (const char * str);

将C风格的字符串转成整数,但是这个没有错误检查机制

#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
	char ch[] = "1234";
	string s = "5678";
	int n1 = atoi(ch);
	int n2 = atoi(s.c_str());
	cout << n1 << endl;
	cout << n2 << endl;
	return 0;
}

字符转整数

to_string

文档:to_string - C++ Reference (cplusplus.com)

在这里插入图片描述

#include<iostream>
#include<string>
int main()
{
	int a = 23456;
	std::string s = std::to_string(a);
	std::cout << s << std::endl;
	return 0;
}

stringstream

文档:stringstream - C++ Reference (cplusplus.com)

int main()
{
	int a = 1234;
	stringstream ss;
	
	//整数写进字符串流
	ss << a;

	//字符串流提取
	string s = ss.str();
	cout << s << endl;
	return 0;
}

sprintf

这是C语言提供的函数

#include <iostream>
#include <cstdio>

int main()
{
    int num = 123;
    char buffer[50];
    sprintf(buffer, "%d", num);
    std::string str(buffer);
    std::cout << "String: " << str << std::endl;
    return 0;
}

ASCII码转换

字符'0'的ASCII码是48
在这里插入图片描述

转换的时候加减48即可

int main()
{
	char c = '5';
	int c2i = c - 48;
	cout << c2i << endl;

	int n = 3;
	char i2c = n + 48;
	cout << i2c << endl;
	return 0;
}

数字字符部分ASCII码表:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2109925.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

手机如何切换网络IP地址:‌方法详解与操作指南‌

在当今的数字化时代&#xff0c;‌网络IP地址作为设备在网络中的唯一标识&#xff0c;‌扮演着至关重要的角色。‌对于手机用户而言&#xff0c;‌了解如何切换网络IP地址不仅有助于提升网络体验&#xff0c;‌还能在一定程度上保护个人隐私。‌本文将详细介绍手机切换网络IP地…

仿论坛项目--Kafka,构建TB级异步消息系统

阻塞队列 • BlockingQueue 解决线程通信的问题。阻塞方法&#xff1a;put、take。 • 生产者消费者模式生产者&#xff1a;产生数据的线程。消费者&#xff1a;使用数据的线程。 • 实现类ArrayBlockingQueueLinkedBlockingQueuePriorityBlockingQueue、SynchronousQueue、D…

火语言RPA流程组件介绍--浏览器设置

&#x1f6a9;【组件功能】&#xff1a;浏览器设置&#xff0c;实例化对象&#xff0c;并执行是否显示图片/是否显示浏览器窗体等操作 配置预览 配置说明 操作浏览器类型 内置浏览器 外部浏览器 浏览器位置 本机安装的chrome浏览器可执行文件的路径(选择外部浏览器时必填)…

9月出海风向标:越南国庆节、巴西独立日、游戏外部开发大会、东京电玩节来袭!

9月如期而至&#xff0c;各位出海人准备好迎接新一轮增长机会了吗&#xff1f;以下是9月全球热门节日、行业大会活动信息&#xff1a; 01. 越南国庆节 越南国庆日&#xff0c;也称为“Quốc khnh nước CHXHCN Việt Nam”&#xff0c;是每年的9月2日&#xff0c;这一天标志着…

MySQL Workbench 的入门指南

前言 MySQL Workbench 是一个官方的图形化工具&#xff0c;用于开发、管理和设计 MySQL 数据库服务器。它提供了丰富的功能&#xff0c;可以帮助数据库管理员、开发者以及DBA们高效地工作。下面是一个MySQL Workbench的入门指南&#xff0c;介绍如何安装和使用它。 安装 MyS…

FP7209:非同步升压恒流LED区动IC

前言&#xff1a;LED驱动芯片是什么&#xff1f; LED驱动器&#xff08;LED Driver&#xff09;&#xff0c;是指驱动LED发光或LED模块组件正常工作的电源调整电子器件。由于LED PN结的导通特性决定&#xff0c;它能适应的电源电压和电流变动范围十分狭窄&#xff0c;稍许偏离…

恋爱相亲交友系统源码原生源码可二次开发APP 小程序 H5,web全适配

直播互动&#xff1a;平台设有专门的直播间&#xff0c;允许房间主人与其他异性用户通过视频连线的方式进行一对一互动。语音视频交流&#xff1a;异性用户可以发起语音或视频通话&#xff0c;以增进了解和交流。群组聊天&#xff1a;用户能够创建群聊&#xff0c;邀请自己关注…

用亚马逊云科技Graviton高性能/低耗能处理器构建AI向量数据库(下篇)

简介&#xff1a; 今天小李哥将介绍亚马逊推出的云平台4代高性能计算处理器Gravition&#xff0c;并利用该处理器构建生成式AI向量数据库。利用向量数据库&#xff0c;我们可以开发和构建多样化的生成式AI应用&#xff0c;如RAG知识库&#xff0c;特定领域知识的聊天机器人等。…

Unity中使用四元数限制旋转

前言 在处理旋转相关的内容的时候&#xff0c;如果使用unity提供的欧拉角描述旋转&#xff0c;会出现一下两种问题 同一旋转的表示不唯一万向节死锁 绕轴90旋转与绕轴90&#xff0b;360旋转的表现是一致的 当某个特定轴达到某个特殊值时&#xff0c;绕一个轴旋转可能会覆盖另一…

Python 学习笔记(一)

input 函数 input()&#xff1a;将输入数据的类型都转化为字符串 range 函数 自定义函数 函数与方法 列表 字符串 切片 集合 字典 函数的参数 匿名函数 文件操作 异常处理

JavaScript 21个常用数组使用方法

前言 在 JavaScript 中&#xff0c;数组是一种特殊类型的对象&#xff0c;用于存储和组织多个值。数组使您可以将值分组到单个变量名下&#xff0c;从而方便管理和操作数据集合。以下是更详细的解释&#xff1a; 在 JavaScript 中&#xff0c;一对方括号 [] 表示数组。数组中…

Kafka【第一篇】Kafka集群搭建

Kafka初识 1、Kafka使用背景 在我们大量使用分布式数据库、分布式计算集群的时候&#xff0c;是否会遇到这样的一些问题&#xff1a; 我们想分析下用户行为&#xff08;pageviews&#xff09;&#xff0c;以便我们设计出更好的广告位我想对用户的搜索关键词进行统计&#xff…

Nexpose 6.6.268 发布下载,新增功能概览

Nexpose 6.6.268 for Linux & Windows - 漏洞扫描 Rapid7 Vulnerability Management, release Sep 04, 2024 请访问原文链接&#xff1a;https://sysin.org/blog/nexpose-6/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;sysin.or…

JVM系列(五) -内存相关的调优参数

一、摘要 在上篇文章中,我们详细介绍了 JVM 的内存布局。 今天这篇文章,并结合之前的介绍知识,一起了解一下 JVM 内存相关的调优参数。 二、内存设置相关的命令 所有内存溢出的问题,除了代码可能存在问题以外,更直观的问题是内存空间不足,如何通过参数来控制各区域的…

【数据结构】排序算法篇二

【数据结构】排序算法篇二 1. 快速排序&#xff08;hoare版本&#xff09;&#xff08;1&#xff09;基本思想&#xff1a;&#xff08;2&#xff09;动态图解&#xff1a;&#xff08;3&#xff09;代码实现&#xff1a;&#xff08;4&#xff09;特性总结&#xff1a; 2. 快速…

《Few-shot Object Counting with Similarity-Aware Feature Enhancement》CVPR2023

摘要 论文提出了一种新颖的学习模块&#xff0c;该模块包含一个相似性比较模块&#xff08;Similarity Comparison Module, SCM&#xff09;和一个特征增强模块&#xff08;Feature Enhancement Module, FEM&#xff09;。通过比较支持图像和查询图像的投影特征&#xff0c;生…

运维变革:迎接数字化转型的挑战

在数字化转型的浪潮中&#xff0c;我们的技术架构和实现方式正经历着前所未有的变革。这一变革不仅重塑了业务形态&#xff0c;也对运维体系和运维组织模式产生了深远影响。近期&#xff0c;在与众多客户探讨“十四五”规划时&#xff0c;运维变革成为一个无法回避的重要话题。…

海外广告投放矩阵:如何选择合适的平台?

跨境电商的旺季即将来临&#xff0c;对于卖家们来说&#xff0c;如何进行有效的营销推广至关重要。在多渠道广告覆盖的策略下&#xff0c;选择合适的平台成为关键。那么&#xff0c;哪些平台是跨境旺季营销的首选呢&#xff1f; 一、社交媒体平台 1、Instagram 以图片和短视频…

React 通用后台管理项目

React 通用后台管理项目 项目介绍 本项目是基于React的通用后台管理系统&#xff0c;整体系统有数据可视化展示&#xff0c;数据基本的增删改查功能。项目使用 Create React App创建&#xff0c;主语言为JavaScript。在使用React框架过程中通过hook进行页面逻辑编写。后端接口…