sprintf() sscanf()的使用
来源:互联网 发布:网络数据拦截分析工具 编辑:程序博客网 时间:2024/04/30 05:10
看了一些博客后,自己总结了一下,力求简单明了地说出这两个函数的作用和使用方法
1.sprintf()函数
sprintf函数原型为 int sprintf(char *str, const char *format, ...)
按我的话来说,参数分为三部分,第一部分str是要存放转换结果的字符串,参数第二部分" ....."是转换的格式,第三部分是转换的原对象
作用是格式化字符串,具体功能如下所示:
(1)将数字变量转换为字符串
#include<stdio.h>int main(){ char str[100]; int a=10; sprintf(str,"%d",a);//存放结果的字符串为str,按十进制转换,转化的对象是a printf("%s\n",str);}
(2)得到整型变量的16进制和8进制字符串。
#include<stdio.h>int main(){char str[100];int a=16;sprintf(str,"%x",a);printf("%d转换为十六进制:%s\n",a,str);sprintf(str,"%o",a);printf("%d转化为八进制:%s\n",a,str);}
(3)连接多个字符串。
#include<stdio.h>int main(){char str[100];char a[20]="I am ";char b[20]="a ";char c[20]="student";sprintf(str,"%s%s%s",a,b,c);printf("%s\n",str);}
2.sscanf()函数 原型:int sscanf (const char *str,const char * format,........);
按我的话来说,参数分为三部分,第一部分str是转换的原对象,参数第二部分" ....."是转换的格式,第三部分是要存放转换结果的字符串,跟sprintf相反
1.取前N个字符 "%Ns"
#include<stdio.h>int main(){char str[100];sscanf("123456 abcd","%4s",str);printf("%s\n",str); //1234}
2.取前面指定字符集的串,遇到非指定字符集内的元素就停止,字符集可以只有一个元素,可以是空格#include<stdio.h>int main(){ char str[100]; sscanf("123456 123abcd","%[1-9]s",str);//取前面在1~9之间的字符,遇到不是该字符集内的字符,停止 printf("%s\n",str);//123456 char str1[100]; sscanf("123456 123abcd","%[1]s",str1);//字符集只有一个元素'1',所以同样,取前面的1的字符,遇到不是就停止 printf("%s\n",str1);}
3. ^表示取反, [^a-z]表示从原字符串中取第一个字符起,不在a-z之间的字符,遇到是a-z这个范围的就停止#include<stdio.h>int main(){ char str[100]; sscanf("123456 123abcd","%[^a-z]s",str);//取前面在不再a-z之间的字符,遇到是该字符集内的字符,停止 printf("%s\n",str);//123456 char str1[100]; sscanf("123456 123abcd","%[^z]s",str1);//取前面不是的z的字符,遇到是就停止 printf("%s\n",str1); char str2[100]; sscanf("123456 123abcd","%[^ ]s",str2);//读取到空格 停止[^ ] printf("%s\n",str2);}
注意: 字符分大小写[a-z] [A-Z]两者的字符集不同(1)-: 表示范围,如:%[1-9]表示只读取字符串前1-9这几个数字字符, %[a-z]表示只读取字符串前a-z小写字母,类似地 %[A-Z]只读取字符串前大写字母,
遇到不再内的字符就停止
(2)^: 表示不取,如:%[^1]表示读取除字符串前'1'以外的所有字符 %[^ #]表示字符串前除‘#’以外的所有字符
(3),: 范围可以用","相连接 如%[1-9,a-z]表示同时取1-9数字和a-z小写字母
原则:从第一个在指定范围内的数字开始读取,到第一个不在范围内的数字结束
部分内容来自:http://www.cnblogs.com/gudu0723/archive/2012/11/02/2751400.html
http://www.cnblogs.com/Anker/p/3351168.html
- sprintf() sscanf()的使用
- sprintf(),sscanf()函数的使用
- sscanf和sprintf使用
- 使用sprintf() sscanf()转换字符串
- C语言 sscanf 和 sprintf函数的说明和使用
- sscanf与sprintf函数的使用实例(C / C++)
- sprintf,sscanf的用法(转)
- sprintf与sscanf的区别
- sprintf与sscanf的区别
- sprintf与sscanf的用法
- sscanf和sprintf的用法
- sprintf和sscanf的详解
- sscanf 和 sprintf的用法
- sscanf和sprintf的用法
- sscanf和sprintf的用法
- sprintf和sscanf的用法
- sscanf和sprintf的用法
- STL :sscanf sprintf的应用
- Qt实现天气预报与PM2.5监测系统(5)天气预报接口
- Oracle中命名块之存储过程的简单使用
- Android 唯一标识
- bzoj1053 [HAOI2007] 反素数ant
- 判断输入的文字是否为空
- sprintf() sscanf()的使用
- 让Excel工作簿中宏自动运行的两种方法
- PyCharm集成开发环境配合nginx搭建部署环境
- mac上安装gdb及使用中碰到的问题
- 关于头文件和命名空间
- 4558: [JLoi2016]方
- c++-静态成员函数和非静态成员函数的区别
- Remove Linked List Elements
- JAVA多线程基础实验编码及学习笔记总结