C语言中的sprintfsscanf两个函数介绍

sprintf

  • 作用是格式化字符串
int sprintf( char *buffer, const char *format [, argument] ... );
bufferStorage location for output  //输出的存储位置 formatFormat-control string   //格式控制字符串argumentOptional arguments   //可选参数
  • 我在这块罗列几个功能

    1. 将数字变量转换为字符串

    2. 得到整型变量的16进制和8进制字符串。

    3. 连接多个字符串。

char str[256] = { 0 };int data = 2048;sprintf(str, "%d", data); //将data转换为字符串printf("%s\n", str);sprintf(str, "0x%X", data);//获取data的十六进制printf("%s\n", str);sprintf(str, "0%o", data); //获取data的八进制printf("%s\n", str);const char *s1 = "Hello";const char *s2 = "World";sprintf(str, "%s %s", s1, s2);//连接字符串s1和s2printf("%s\n", str);

sscanf

  • 将参数buffer的字符串根据参数format字符串来转换并格式化数据,转换后的结果存于对应的参数内。
int sscanf( const char *buffer, const char *format [, argument ] ... );
bufferStored data  //存储的数据formatFormat-control string  //格式控制字符串argumentOptional arguments  //可选参数

我在这儿罗列几条它的功能

  1. 根据格式从字符串中提取数据。如从字符串中取出整数、浮点数和字符串等。
  2. 取指定长度的字符串
  3. 取到指定字符为止的字符串
  4. 取仅包含指定字符集的字符串
  5. 取到指定字符集为止的字符串

sscanf可以支持格式字符%[ ]:

  1. -: 表示范围,如:%[1-9]表示只读取1-9这几个数字, %[a-z]表示只读取a-z小写字母,类似地
    %[A-Z]只读取大写字母
  2. ^: 表示不取,如:%[^1]表示读取除’1’以外的所有字符 ,%[^/]表示除/以外的所有字符
  3. ,: 范围可以用”,”相连接 如%[1-9,a-z]表示同时取1-9数字和a-z小写字母
  4. 原则:从第一个在指定范围内的数字开始读取,到第一个不在范围内的数字结束%s 可以看成%[] 的一个特例 %[^ ] (注意^后面有一个空格!)
const char *s = "http://www.baidu.com:1234";char protocol[32] = { 0 };char host[128] = { 0 };char port[8] = { 0 };sscanf(s, "%[^:]://%[^:]:%[1-9]", protocol, host, port);printf("protocol: %s\n", protocol);printf("host: %s\n", host);printf("port: %s\n", port);

C语言中的`sprintf`和`sscanf`两个函数介绍相关推荐

  1. c语言中的普通字符包括什么,【判断题】C语言中的字符常量通常有两种形式:普通字符和转义字符。...

    [判断题]C语言中的字符常量通常有两种形式:普通字符和转义字符. 更多相关问题 ---Can you speak French?---Yes, but only____.A.a littleB.lit ...

  2. 指针数组下标JAVA_Java语言中可用下标和指针两种方式表示数组元素。

    [判断题]一行可以写多条预处理命令 [判断题]如果一个java程序中有多个类,编译后只生成一个字节码文件,其名字同主类名一致. [判断题]Protected类型的实例变量只能在本类中使用,其他类中不可 ...

  3. C语言中打印结果如何保留两位、三位小数以及整数?

    首先我们要保证我们输入是double类型的数据 第二步当然是打印a,我们要知道打印double类型的数据打印时需要使用占位符%f. (在输入数据时用%lf) 那么打印保留两位数,我们应该怎么做呢? % ...

  4. c语言怎么同时输入两个字符,解决C语言中使用scanf连续输入两个字符类型的问题...

    昨天用C编程,遇到一个关于scanf的细节问题,假如运行如下程序: #include int main() { char ch1,ch2; printf("Input for ch1:/n& ...

  5. C语言中你可能会用到的字符串函数的代码

    将写内容过程中比较常用的内容段做个备份,下面资料是关于C语言中你可能会用到的字符串函数的内容. {if(dest == src)return dest;else if(dest < src){} ...

  6. [PB] PB中读写文件通用的两个函数

    PB中读写文件通用的两个函数 1.文件读取 : //函数名:f_readfile //功能:读取文件//参数:// io_file:ref blob 大对象类型,存储读出的文件内容:// is_fil ...

  7. Python编程语言学习:python语言中快速查询python自带模块函数的用法及其属性方法、如何查询某个函数关键词的用法、输出一个类或者实例化对象的所有属性和方法名之详细攻略

    Python编程语言学习:python语言中快速查询python自带模块&函数的用法及其属性方法.如何查询某个函数&关键词的用法.输出一个类或者实例化对象的所有属性和方法名之详细攻略 ...

  8. Go 语言中的一等公民:看似普通的函数,凭什么?

    大家好,我是煎鱼. 在 Go 语言中,一提函数,大家提的最多的就是 "Go 语言的函数是一等公民".这个定义来的非常突然,我们先了解一下什么是一等公民,他又凭什么? 根据维基百科的 ...

  9. C语言中如何将二维数组作为函数的参数传递

    今天写程序的时候要用到二维数组作参数传给一个函数,我发现将二维数组作参数进行传递还不是想象得那么简单里,但是最后我也解决了遇到的问题,所以这篇文章主要介绍如何处理二维数组当作参数传递的情况,希望大家不 ...

  10. ACMNO.22 C语言-公约公倍2 写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果两个整数由键盘输入。 输入 两个数 输出 最大公约数 最小公倍数

    题目描述 写两个函数,分别求两个整数的最大公约数和最小公倍数, 用主函数调用这两个函数,并输出结果两个整数由键盘输入. 输入 两个数 输出 最大公约数 最小公倍数 样例输入 6 15 样例输出 3 3 ...

最新文章

  1. EF Core 3.0查询
  2. 搜索页面html代码怎么写,页内搜索功能源代码
  3. org-mode入门教程
  4. 怎样解决jsp:include标签在包括html文件时遇到的乱码问题
  5. 数独的优化回朔算法(二)
  6. Android制作自己的依赖库让别人引用【转】
  7. 人工智能之父艾伦·麦席森·图灵
  8. 虚短”“虚断”两板斧,搞定运算放大器 11张大图详(转)
  9. rca接口_新手小白必读 1分钟看懂同轴和光纤音频接口
  10. 监督学习、无监督学习、强化学习概念
  11. excel利用公式获取行或列中最后一个非空单元格数据
  12. 怎么测试ftp服务器上传文件,ftp服务器文件上传测试
  13. 搜索引擎如何优化?这些方法要知道
  14. [好文推荐] 给年轻程序员的8条建议
  15. mysql计算时差_mysql-按组计算时差
  16. kindle paper white部分优化
  17. 中基鸿业家庭理财注意事项
  18. 干货!高速串行Serdes均衡之FFE
  19. 计算机专业课838,838计算机科学专业基础综合.docx
  20. 在几何画板中怎样添加链接

热门文章

  1. python selenium click 动态加载_python selenium:不要等到click()命令之后加载页面
  2. TypeScript实战:下棋游戏
  3. Quill富文本编辑器—多图片视频混合上传示例
  4. C++_auto_ptr与unique_ptr智能指针
  5. OpenCV_(Laplacian Transform to find the edges)图像拉普拉斯变换查找边缘 图像识别
  6. 论文阅读-为什么深度卷积神经网络对小目标的变换泛化效果很差?
  7. Latex格式投稿需注意的问题_以BSPC和BMC BioInformatics为例
  8. Python_画boxplot 盒图/箱线图
  9. 论文阅读笔记(十一)——Mobilenet-SSDv2: An Improved Object Detection Model for Embedded Systems
  10. 如何修改maven的默认jdk版本(1.5 改为1.8)