c++中从出年月日的字符串提取整形int

2023-05-16

在C++中字符串有两种,不过提取方式类似,具体如下:

一、以’\0’结束的字符数组。

对于以’\0’结束的字符数组,可以有如下两种方式:

1、通过自定义函数提取。

由于格式固定,所以可以通过计算提取。

void get_data(char *s, int &y, int &m, int &d)
{
    int i=0;
    y=0;
    while(s[i]!= '-')//循环提取出年。
    {
        y=y*10+s[i]-'0';
        i++;
    }
    i++;//忽略'-'.
    m=0;
    while(s[i]!='-')//循环提取出月。
    {
        m=m*10+s[i]-'0';
        i++;
    }
    i++;//忽略'-'
    d=0;
    while(s[i]!='\0')//循环提取出日。
    {
        d=d*10+s[i]-'0';
        i++;
    }
}

2、利用sscanf自动完成。

sscanf可以从字符串中格式化提取数据。

代码如下:

void get_data(char *s, int &y, int &m, int &d)
{
    sscanf(s,"%d-%d-%d",&y,&m,&d);//这样一句就可以了。 
}

二、string类字符串。

与字符数组类似,string类字符串也可以用类似方式实现。
1、通过自定义函数:

void get_data(string &s, int &y, int &m, int &d)
{
    int i=0;
    y=0;
    while(s[i]!= '-')//循环提取出年。
    {
        y=y*10+s[i]-'0';
        i++;
    }
    i++;//忽略'-'.
    m=0;
    while(s[i]!='-')//循环提取出月。
    {
        m=m*10+s[i]-'0';
        i++;
    }
    i++;//忽略'-'
    d=0;
    while(i<s.length())//循环提取出日。
    {
        d=d*10+s[i]-'0';
        i++;
    }
}

2、string类可以转为字符数组形式,所以一样可以用sscanf。

void get_data(string &s, int &y, int &m, int &d)
{
    sscanf(s.c_str(),"%d-%d-%d",&y,&m,&d);//s.c_str()可以将string类转为字符数组形式,以'\0'结尾。 所以可以类似操作。  
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

c++中从出年月日的字符串提取整形int 的相关文章

  • Java - 将 int 更改为 ascii

    java 有没有办法将 int 转换为 ascii 符号 你想转换吗ints to chars int yourInt 33 char ch char yourInt System out println yourInt System ou
  • 如何在int内添加空格?

    假设我想打印数字 100000000 乍一看很难判断这个数字代表了多少百万 是一千万还是一亿 如何使 Java 中的大数字看起来更具可读性 例如这样的事情会很棒 100 000 000 你一眼就能看出这个数字是一亿 您也可以尝试 Decim
  • Arduino:字符串到整数得到奇怪的值

    我想转换一个String to an int 我所能找到的就是你必须将 String 转换为 char 数组 然后将该数组转换为int 但我的代码产生奇怪的值 我无法弄清楚问题是什么 void ledDimm String command
  • 整数值比较

    我是一名 Java 编码新手 我刚刚读到可以在 API 中用三种不同的方式描述整数类的变量 我有以下代码 if count compareTo 0 System out println out table count 这是在循环内部并且仅输
  • 如何在Python 3.x中强制输入整数? [复制]

    这个问题在这里已经有答案了 我正在尝试用 Python 编写一个程序 该程序接受输入以重复斐波那契数列的次数 i 1 timeNum input How many times do you want to repeat the sequen
  • 有没有一种可移植的方法来定义 INT_MAX?

    我在 usr include limits h中找到了以下定义 define INT MIN INT MAX 1 define INT MAX 2147483647 另外 似乎该头文件中的所有 XXX MAX 都是从数字常量显式定义的 我想
  • 删除整数中的重复数字[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我在技术回合中遇到过这个程序 他们给了我这个程序来删除给定整数中的重复数字不使用数组或字符串 Example int i 12313425
  • 将 std::string 转换为整数

    我正在尝试转换std string存储在一个std vector为一个整数并将其作为参数传递给函数 这是我的代码的简化版本 vector
  • 为什么下面的结果是零? [复制]

    这个问题在这里已经有答案了 下面的每个 print 语句都会产生 0 0 var c Double 0 0 let a Int 1 let b Int 5 print a b Double a b 100 c Double a b 100
  • Visual Studio 中的递归

    当我运行这个非常简单的递归代码时 我发现当函数 recursCheck 使用整数参数时 我的内存在 Win32 模式下跳到 200 MB 在 x64 模式下跳到 45 MB 并且当参数的类型为 short Win32 模式使用的内存为 4
  • 不同 int 类型的运算

    我有一个使用多种不同 int 类型的程序 最常用的是uint64 t和标准int 但是我想知道我是否可以安全地进行它们之间的混合操作 例如我有一个uint64 t我想添加一个int并将该值存储为另一个值uint64 t 做这样的事情安全吗
  • 在 C 中,为什么不能像将字符串值分配给 char* 那样将整数值分配给 int* ?

    我一直在浏览该网站 但尚未找到此问题的答案 用一个例子来解释这个问题是最简单的 至少对我来说 我不明白为什么这是有效的 include
  • R.string.value 帮助 android 通知

    怎么了 CharSequence contentTitle R string value 错误无法从 int 转换为 CharSequence 有办法解决这个问题还是我错过了什么 我试过 String s R string value Ch
  • 整数比较值的输出错误

    我有以下代码 public static void doIntCompareProcess int a 100 int b 100 Integer c 200 Integer d 200 int f 20000 int e 20000 Sy
  • 将 int(32 位)转换为 char(8 位)

    我有这些定义 int data uartBaseAddress UART DATA REGISTER 4 data coming from UART RX port char message 20 array of 20 chars 现在当
  • C 中 long int 和 int 的大小显示 4 个字节 [重复]

    这个问题在这里已经有答案了 我做了以下实验来了解系统中 long int 和 int 的大小 系统规格 64位Windows 7 gcc MinGW 编译器 日食CDT 我对得到的输出感到困惑 我没有理由支持我的程序的结果 如果有人对此有任
  • 在 Swift 中将 bytes/UInt8 数组转换为 Int

    如何将4字节数组转换为对应的Int let array UInt8 gt let value Int Example Input 0 0 0 x0e Output 14 我在互联网上找到的一些代码不起作用 let data NSData b
  • 如何在 C++ 中打印带前缀 + 的正数

    有没有办法在 C 中打印整数及其符号 即默认情况下 如果数字为负数 我们会得到一个 印有标志 同理我们可以得到 在正数之前 int x 1 cout lt lt x lt
  • int 到 long 赋值

    我一直在尝试这个 int 和 long 转换 我尝试分配一个int变量为along多变的 代码如下 public static void main String args int i 1024 long j i long k i i i i
  • mysql 中 int(11) 列的大小是多少(以字节为单位)?

    柱子的尺寸是多少int 11 在mysql中以字节为单位 该列中可以存储的最大值 An INT无论指定什么长度 都将始终为 4 个字节 TINYINT 1 字节 8 位 SMALLINT 2 字节 16 位 MEDIUMINT 3 字节 2

随机推荐

  • KEIL添加新的.C文件

    KEIL添加新的 C文件 问题描述 之前在网上看了很多方法添加 C文件 xff0c 结果经常报重复定义的错误 xff0c 记录一下自己的方法吧 解决方案 xff1a 右键 add exiting 点击魔法棒 34 C C 43 43 inc
  • 汇总:使用keil5所遇见的一些常见问题以及解决方法

    一 新建keil5工程时出现这个警告 解决方法 xff1a 右键单击Keil STM32F1xx DFP pdsc xff0c 然后点开属性界面 xff0c 由于Keil STM32F1xx DFP pdsc文件是只读文件 xff0c 将只
  • 自定义串口协议

    文章目录 前言一 有限状态机有限状态机代码接收数据缓冲缓冲要求循环队列 一 循环队列代码实现循环队列头文件 xff1a 源文件 xff1a 二 有限状态机与解码有限状态机核心实现代码有限状态机与解码头文件源文件 三 使用小例子总结 前言 此
  • stm32f1串口发送与接收

    目录 串口配置 串口发送 1使用SendString函数发送 2使用printf函数发送 串口接收 串口配置 首先对串口进行初始化 包括使能串口时钟 xff0c 这里我使用的是usart2 xff0c 使能GPIO时钟 xff0c 这里我用
  • 串口通讯详解

    这篇文章包含了串口通讯里面的大部分概念问题 目录 串口通讯线 同步串行 xff08 ISP xff09 异步串行 xff08 UART xff09 波特率 数据帧 串口通讯线 串口通信线最少需要2根 xff08 GND和信号线 xff09
  • 包罗万象!V3Det:1.3W类全新目标检测数据集(港中文&上海AI Lab)

    作者 CV君 编辑 我爱计算机视觉 点击下方卡片 xff0c 关注 自动驾驶之心 公众号 ADAS巨卷干货 xff0c 即可获取 点击进入 自动驾驶之心 目标检测 技术交流群 后台回复 2D检测综述 获取鱼眼检测 实时检测 通用2D检测等近
  • stm32f4串口接收与发送

    之前有写一篇stm32f1串口接收与发送的文章 xff0c stm32f4与f1只有配置上的一点不同 xff0c 今天把f4的串口接收与发送代码分享一下 详细解释推荐大家看f1那篇 xff0c 都是一样的 xff0c stm32f1串口发送
  • -> 在c语言中是什么意思?

    gt 是一个整体 xff0c 它是用于指向结构体子数据的指针 xff0c 用来取子数据 换种说法 xff0c 如果我们在C语言中定义了一个结构体 xff0c 然后申明一个指针指向这个结构体 xff0c 那么我们要用指针取出结构体中的数据 x
  • C++中 i<<=1是什么意思

    左移赋值运算 变量i 左移1位 xff0c 结果仍然保存到变量i 举个栗子 xff1a i 61 101001 执行 xff1a i span class token operator lt lt 61 span span class to
  • 详解KITTI数据集

    详解KITTI数据集 一 KITTI数据集发布方 2011年 xff0c Andreas Geiger xff08 KIT xff09 Philip Lenz xff08 KIT xff09 Raquel Urtasun xff08 TTI
  • OpenCV各版本差异

    Opencv2标志着opencv革命性的改变 xff0c Opencv2带来了全新的C 43 43 接口 xff0c 将Opencv的能力无限放大 在2 0时代 xff0c opencv增加了新的平台支持 xff0c 包括iOS和Andro
  • realsense D435 D435i D415深度相机在ros下获得RGB图、左右红外摄像图、深度图、IMU数据

    首先你要你确保你的相机驱动已经安装好 xff0c 环境配置可以看我的另一篇文章 xff1a https blog csdn net weixin 46195203 article details 119205851 第一步 xff1a 新建
  • LaTex学习之算法如何写以及常用语句IF、FOR、WHILE

    首先是在头文件中加上 usepackage span class token punctuation span algorithm span class token punctuation span algorithmic span cla
  • latex报错:Missing delimiter (. inserted). ... {\xi \left( {p,{p_q}} \right)} \right|}}

    理想中的公式 xff0c begin span class token punctuation span equation span class token punctuation span span class token punctua
  • sort函数第三个参数cmp必须声明为static

    span class token keyword bool span span class token keyword static span span class token function comp span span class t
  • linux下Tinyhttpd安装运行

    tinyhttpd 超轻量型 Http Server tinyhttpd 全部代码在500 行左右 xff0c 是一个超轻量型 Http Server xff0c 这是是学习C C 43 43 入门非常棒的一个开源项目 xff0c 可以帮助
  • CVPR 2023|DropKey:两行代码高效缓解ViT过拟合(美图&国科大)

    编辑 CV技术指南 点击下方卡片 xff0c 关注 自动驾驶之心 公众号 ADAS巨卷干货 xff0c 即可获取 点击进入 自动驾驶之心 全栈算法 技术交流群 前言 美图影像研究院 xff08 MT Lab xff09 与中国科学院大学突破
  • C++并发与多线程学习笔记--线程启动、结束,创建线程多法

    一 范例演示线程运行的开始 程序运行起来 xff0c 生成一个进程 xff0c 该进程所属的主线程开始自动运行 xff1b 当主线程从main xff08 xff09 函数返回 xff0c 则整个进程执行完毕 主线程从main xff08
  • 顶层const和底层const

    概念解释 表示声明常量的const都是顶层const 用于声明引用的const都是底层const 顶层const是 xff1a 指针本身是常量 底层const是 xff1a 指针所指的对象是常量 即是顶层const又是底层const xff
  • c++中从出年月日的字符串提取整形int

    在C 43 43 中字符串有两种 xff0c 不过提取方式类似 xff0c 具体如下 xff1a 一 以 0 结束的字符数组 对于以 0 结束的字符数组 xff0c 可以有如下两种方式 xff1a 1 通过自定义函数提取 由于格式固定 xf