字符串处理函数:sscanf 的用法

这篇具有很好参考价值的文章主要介绍了字符串处理函数:sscanf 的用法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言:

一直对于一些日期字符串中数字的提取比较头疼,现看到 sscanf 对于字符串中的内容提取较方便,学习记录如下。方便以后查询。


sscanf():将 C 语言字符串中数据按 指定的格式 将数据存储在对应的参数中。

1、函数格式

// sscanf() 会从 buffer 里读进数据,依照 format 的格式将数据写入到 argument 里,注意这里的 argument 需要使用地址符号
// 转换格式参考 scanf() 即可
int sscanf(const char *buffer, const char *format, [argument ]... );

2、返回值

成功则返回参数数目,失败则返回-1,错误原因存于errno中。

sscanf,C++学习笔记,c++,算法,开发语言


说明:
sscanf,C++学习笔记,c++,算法,开发语言


3、支持集合操作

  • %[a-z] 表示匹配 a 到 z 中任意字符,贪婪性(尽可能多的匹配);
  • %[aB] 匹配 a、B 中一员,贪婪性;
  • %[^a] 匹配非 a 的任意字符,并且停止读入,贪婪性;

4、测试代码

#include <bits/stdc++.h>
using namespace std;

int main()
{
    // sscanf() 会从 buffer 里读进数据,依照 format 的格式将数据写入到 argument 里,注意这里的 argument 需要使用地址符号
    // format 格式参考 scanf() 的输入格式即可

    // 1、取需要的字符串
    int year,month,day;
    sscanf("2022.09.21","%d.%d.%d",&year,&month,&day);// 提取年、月、日
    printf("%d %d %d\n",year,month,day);


    //2、 %ns 提取长度为 n 的字符串
    char str1[10];
    sscanf("20220901000","%8s",str1);// 提取长度为 8 的字符串
    printf("%s\n",str1);


    // 3、将数字表示的字符串转换为整型变量
    int num;
    sscanf("123456","%d",&num);
    printf("%d\n",num);


    // 4、取到指定字符为止的字符串
    char str2[10];
    sscanf("test 01","%[^ ]",str2);// 取遇到空格为止的字符串
    puts(str2);
    char str3[10];
    sscanf("test/01","%[^/]",str3);// 取遇到'/'为止的字符串
    puts(str3);


    // 5、取仅包含指定字符集的字符串
    char str4[20];
    sscanf("123456testSIX","%[1-9a-z]",str4);// 只取数字和小写字母
    puts(str4);


    // 6、跳过不想要的数据
    char str5[20];
    // %s 读取时是以空格和换行作为结束标志的!
    sscanf("test TEST","%*s%s",str5);// 使用 %*s 来跳过前一个字符串
    puts(str5);


    // 给定一个字符串test/unique_11@qq.com,获取 / 和 @ 之间的字符串
    char str6[20];
    sscanf("test/unique_11@qq.com","%*[^/]/%[^@]",str6);// 先把 test/ 过滤掉,再将非'@'的一串内容送到 str6 中
    puts(str6);


    char buf[30];
    sscanf("123456abcdedfBCDEF","%[1-9A-Z]",buf);// 遇到不是1-9或者A-Z的字符时,即遇到小写字母时,就已经结束
    printf("%s\n",buf);
    return 0;
}

测试结果:文章来源地址https://www.toymoban.com/news/detail-526119.html

2022 9 21
20220901
123456
test
test
123456test
TEST
unique_11
123456

5、参考文章

  • C语言函数sscanf()的用法
  • 关于sscanf函数的使用
  • C语言sscanf函数使用总结

到了这里,关于字符串处理函数:sscanf 的用法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python中字符串的内建函数之expandtabs的用法

    一、str.expandtabs() 进入这个函数之前,我们来看看: 根据打印结果来看,abc距离def一个字符的间距。 在字符串中t的长度为1 (tab键也就是t,通常说的是4个字符长度,我们写分支结构时,也常用tab键进行4个字符长度的缩进) str.expandtabs()这个函数的目的是把字符串中的tab符号

    2024年02月13日
    浏览(34)
  • matlab字符串处理函数

    函数 功能说明 函数 功能说明 eval(string) 作为一个 MATLAB 命令求字符串的值 isspace 空格字符存在时返回真值 blanks(n) 返回一个具有 n 个空格的字符串 isstr 输入一个字符串,返回真值 deblank 去掉字符串中末尾的空格 iasterr 返回上一个产生 MATLAB 错误的字符串 feval 求由字符串给定的

    2024年02月13日
    浏览(43)
  • 深入解析C语言中的字符串和字符串处理函数

    标题:详解C语言中的字符串和字符串处理函数 目录: 1.引言 2.什么是C语言中的字符串 3.字符串的表示方式 4.C语言中的字符串处理函数 5.例子:使用字符串处理函数的示例代码 6.总结 在C语言中,字符串是一种常见的数据类型,用于存储一串字符。本篇博客将详细介绍C语言中

    2024年02月15日
    浏览(52)
  • Hive字符串函数-空格处理

    平常我们在数据开发的过程中,字符串函数里面包含空格会导致数据的一致性被破坏,造成我们的开发脚本出错,所以我们在数据预处理的时候,有两种情况需要考虑,一种是字符串里面空格的内容是否需要清洗,另一种字符串长度缺少是否需要用空格填充。 语法:trim(str

    2023年04月08日
    浏览(41)
  • C语言——字符串处理函数(6个)

    软件:Dev-C++ 参考书籍:C语言程序设计案例教程(第二版).张丽华.清华大学出版社 strlen 函数 —— 测试字符串长度 注意: 字符数组长度为括号内数字10,字符串长度为5 strcat 函数—— 字符串连接 注意 : 字符串2常连接到字符串1后,这就要求字符串1的空间足够大 strcpy 函数

    2024年02月06日
    浏览(36)
  • C#入门级——常见字符串处理方法/函数

    目录 1、去除字符串前后的空格 Trim() 2、按指定分隔符分割字符串,对字符串进行切片,并返回分割后的字符串数组 split()  3、字符串与数字之间的转换 Convert.ToString() Convert.ToInt16() 如果是被分割字符中出现两个连续的分割字符,那么字符串数组结果集会出现有空字符串成员的

    2023年04月09日
    浏览(50)
  • 【C语言】深入精讲字符串处理函数使用与优化

    目录 一、字符串处理函数 1、测量字符串的长度 strlen 2、字符串拷贝函数 strcpy/strncpy(拷贝前n个字符)  3、字符串追加函数strcat/strncat 4、字符串比较函数strcmp  5、字符查找函数strchr/strrchr  6、字符串查找strstr 7、字符串替换函数memset 8、字符串 切割 strtok  二、字符串转数值

    2024年02月17日
    浏览(49)
  • C语言学习系列-->字符函数和字符串函数

    包含头文件: 函数 如果它的参数复合下列条件就返回真(一个非零数字) iscntrl 任何控制字符 任何控制字符 空白字符:空格’ ‘,换页’f’,换行’n’,回车’r’,制表符’t’或者垂直制表符’v’ isdigit 十进制数字0~9 isxdigit 十六进制数字,包括所有十进制数字,小

    2024年02月09日
    浏览(39)
  • GaussDB(DWS)字符串处理函数返回错误结果集排查

    摘要: 在使用字符串处理函数时,有时会出现非预期结果的场景。在排除使用问题后,应该从encoding和数据本身开始排查。 本文分享自华为云社区《GaussDB(DWS)字符串处理函数返回错误结果集排查》,作者: -CHEN111- 。 在使用字符串处理函数时,有时会出现非预期结果的场景。

    2024年02月03日
    浏览(46)
  • spark-sql处理json字符串的常用函数

    整理了spark-sql处理json字符串的几个函数: 1 get_json_object 解析不含数组的 json   2 from_json  解析json 3 schema_of_json 提供生成json格式的方法 4 explode   把JSONArray转为多行 get_json_object(string json_string, string path) :适合最外层为{}的json解析。  第一个参数是json对象变量,也就是含j

    2023年04月08日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包