C语言sscanf函数的总结
在处理字符串的程序当中,经常会分析字符串,从一大长串的字符串截取我们需要的数据,这如果通过自己手写函数来分析,虽然可以,但当你知道sscanf的功能,那就自己写函数分析就显得多此一举。
这些函数的使用都很简单,总结一下,等下次使用一目了然。俗话说:好记性不如烂笔头,记录下来就是效率。
以下源代码是本人测试的源文件,附带讲解注释。
1./***************************************************** 。
2.** Name : sscanf.c 。
3.** Author : gzshun 。
4.** Version : 1.0 。
5.** Date : 2011-12 。
6.** Description : sscanf function 。
7.******************************************************/ 。
8.#include <stdio.h> 。
9.#include <stdlib.h> 。
10.#include <string.h> 。
11.
12.static void sscanf_test(void); 。
13.
14.static void sscanf_test(void) 。
15.{
16. int ret; 。
17. char *string; 。
18. int digit; 。
19. char buf1[255]; 。
20. char buf2[255]; 。
21. char buf3[255]; 。
22. char buf4[255]; 。
23.
24. /*1.最简单的用法*/ 。
25. string = "china beijing 123"; 。
26. ret = sscanf(string, "%s %s %d", buf1, buf2, &digit); 。
27. printf("1.string=%s\n", string); 。
28. printf("1.ret=%d, buf1=%s, buf2=%s, digit=%d\n\n", ret, buf1, buf2, digit); 。
29. /*
30. **执行结果: 。
31. **1.ret=2, buf1=china, buf2=beijing, digit=123 。
32. **可以看出,sscanf的返回值是读取的参数个数 。
33. */
34.
35. /*2.取指定长度的字符串*/ 。
36. string = "123456789"; 。
37. sscanf(string, "%5s", buf1); 。
38. printf("2.string=%s\n", string); 。
39. printf("2.buf1=%s\n\n", buf1); 。
40. /*
41. **执行结果: 。
42. **2.buf1=12345 。
43. */
44.
45. /*3.取到指定字符为止的字符串*/ 。
46. string = "123/456"; 。
47. sscanf(string, "%[^/]", buf1); 。
48. printf("3.string=%s\n", string); 。
49. printf("3.buf1=%s\n\n", buf1); 。
50. /*
51. **执行结果: 。
52. **3.buf1=123 。
53. */
54.
55. /*4.取到指定字符集为止的字符串*/ 。
56. string = "123abcABC"; 。
57. sscanf(string, "%[^A-Z]", buf1); 。
58. printf("4.string=%s\n", string); 。
59. printf("4.buf1=%s\n\n", buf1); 。
60. /*
61. **执行结果: 。
62. **4.buf1=123abc 。
63. */
64.
65. /*5.取仅包含指定字符集的字符串*/ 。
66. string = "0123abcABC"; 。
67. sscanf(string, "%[0-9]%[a-z]%[A-Z]", buf1, buf2, buf3); 。
68. printf("5.string=%s\n", string); 。
69. printf("5.buf1=%s, buf2=%s, buf3=%s\n\n", buf1, buf2, buf3); 。
70. /*
71. **执行结果: 。
72. **5.buf1=123 。
73. */
74.
75. /*6.获取指定字符中间的字符串*/ 。
76. string = "ios<Android>wp7"; 。
77. sscanf(string, "%*[^<]<%[^>]", buf1); 。
78. printf("6.string=%s\n", string); 。
79. printf("6.buf1=%s\n\n", buf1); 。
80. /*
81. **执行结果: 。
82. **6.buf1=android 。
83. */
84.
85. /*7.指定要跳过的字符串*/ 。
86. string = "iosVSandroid"; 。
87. sscanf(string, "%[a-z]VS%[a-z]", buf1, buf2); 。
88. printf("7.string=%s\n", string); 。
89. printf("7.buf1=%s, buf2=%s\n\n", buf1, buf2); 。
90. /*
91. **执行结果: 。
92. **7.buf1=ios, buf2=android 。
93. */
94.
95. /*8.分割以某字符隔开的字符串*/ 。
96. string = "android-iphone-wp7"; 。
97. /*
98. **字符串取道'-'为止,后面还需要跟着分隔符'-', 。
99. **起到过滤作用,有点类似于第7点 。
100. */
101. sscanf(string, "%[^-]-%[^-]-%[^-]", buf1, buf2, buf3); 。
102. printf("8.string=%s\n", string); 。
103. printf("8.buf1=%s, buf2=%s, buf3=%s\n\n", buf1, buf2, buf3); 。
104. /*
105. **执行结果: 。
106. **8.buf1=android, buf2=iphone, buf3=wp7 。
107. */
108.
109. /*9.提取邮箱地址*/ 。
110. string = "Email:beijing@sina.com.cn"; 。
111. sscanf(string, "%[^:]:%[^@]@%[^.].%s", buf1, buf2, buf3, buf4); 。
112. printf("9.string=%s\n", string); 。
113. printf("9.buf1=%s, buf2=%s, buf3=%s, buf4=%s\n\n", buf1, buf2, buf3, buf4); 。
114. /*
115. **执行结果: 。
116. **9.buf1=Email, buf2=beijing, buf3=sina, buf4=com.cn 。
117. */
118.}
119.
120.int main(int argc, char **argv) 。
121.{
122. sscanf_test(); 。
123.
124. return 0; 。
125.}
126.
127./*
128.**测试程序
129.**环境:
130.**Linux Ubuntu 2.6.32-24-generic-pae #39-Ubuntu SMP Wed Jul 28 07:39:26 UTC 2010 i686 GNU/Linux 。
131.**gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5) 。
132.**
133.gzshun@ubuntu:~/c/sscanf$ gcc sscanf.c -o sscanf 。
134.gzshun@ubuntu:~/c/sscanf$ ./sscanf 。
135.1.string=china beijing 123 。
136.1.ret=3, buf1=china, buf2=beijing, digit=123 。
137.
138.2.string=123456789 。
139.2.buf1=12345 。
140.
141.3.string=123/456 。
142.3.buf1=123 。
143.
144.4.string=123abcABC 。
145.4.buf1=123abc 。
146.
147.5.string=0123abcABC 。
148.5.buf1=0123, buf2=abc, buf3=ABC 。
149.
150.6.string=ios<android>wp7 。
151.6.buf1=android 。
152.
153.7.string=iosVSandroid 。
154.7.buf1=ios, buf2=android 。
155.
156.8.string=android-iphone-wp7 。
157.8.buf1=android, buf2=iphone, buf3=wp7 。
158.
159.9.string=Email:beijing@sina.com.cn 。
160.9.buf1=Email, buf2=beijing, buf3=sina, buf4=com.cn 。
161.*/
本篇文章来源于 Linux公社网站(www.linuxidc.com) 原文链接:http://www.linuxidc.com/Linux/2011-12/49711.htm。
头文件 #include
定义函数 int sscanf (const char *str,const char * format,........);。
函数说明 。
sscanf()会将参数str的字符串根据参数format字符串来转换并格式化数据。格式转换形式请参考scanf()。转换后的结果存于对应的参数内。
返回值 成功则返回参数数目,失败则返回-1,错误原因存于errno中。 返回0表示失败 否则,表示正确格式化数据的个数 例如:sscanf(str,"%d%d%s", &i,&i2, &s); 如果三个变成都读入成功会返回3。 如果只读入了第一个整数到i则会返回1。证明无法从str读入第二个整数。
范例 #include 。
main() 。
{
int i; 。
unsigned int j; 。
char input[ ]=”10 0x1b aaaaaaaa bbbbbbbb”; 。
char s[5]; 。
sscanf(input,”%d %x %5[a-z] %*s %f”,&i,&j,s,s); 。
printf(“%d %d %s ”,i,j,s); 。
}
执行 10 27 aaaaa。
sscanf(stringBuf.c_str(), "%20[^#]#%20[^ ]",......)语句中""中的内容含义为:
“%[ 。
]”符号用于声明字符串,它比“%s”更具体,可以用于设置读取的样式。例如“%[a-z]”只读取小写字母,读到其它字符就结束。注意,方括号中如果有“^”,代表一直读到某字符为止。例如:
“%[^#]”:读取字符串,一直到出现“#”号为止。
“%20[^#]”:读取20个字节的字符串,出现“#”号时结束。
所以,“%20[^#]#%20[^ ]”的意义就是,
读取两个20字节大小的字符串,第一个字符串可以用#结束,第二个字符串可以用回车符结束。
好象直接使用就可以了,第一次出现就包含了定义。
顺便把些命令弄给你看下
matlab命令
matlab commands and functions list。
A a
abs 绝对值、模、字符的ASCII码值 。
acos 反余弦
acosh 反双曲余弦
acot 反余切
acoth 反双曲余切
acsc 反余割
acsch 反双曲余割
align 启动图形对象几何位置排列工具 。
all 所有元素非零为真
angle 相角
ans 表达式计算结果的缺省变量名 。
any 所有元素非全零为真
area 面域图
argnames 函数M文件宗量名 。
asec 反正割
asech 反双曲正割
asin 反正弦
asinh 反双曲正弦
assignin 向变量赋值 。
atan 反正切
atan2 四象限反正切
atanh 反双曲正切
autumn 红黄调秋色图阵 。
axes 创建轴对象的低层指令 。
axis 控制轴刻度和风格的高层指令 。
B b
bar 二维直方图
bar3 三维直方图
bar3h 三维水平直方图
barh 二维水平直方图
base2dec X进制转换为十进制 。
bin2dec 二进制转换为十进制 。
blanks 创建空格串
bone 蓝色调黑白色图阵
box 框状坐标轴
break while 或for 环中断指令 。
brighten 亮度控制
C c
capture (3版以前)捕获当前图形 。
cart2pol 直角坐标变为极或柱坐标 。
cart2sph 直角坐标变为球坐标 。
cat 串接成高维数组
caxis 色标尺刻度
cd 指定当前目录
cdedit 启动用户菜单、控件回调函数设计工具 。
cdf2rdf 复数特征值对角阵转为实数块对角阵 。
ceil 向正无穷取整
cell 创建元胞数组
cell2struct 元胞数组转换为构架数组 。
celldisp 显示元胞数组内容 。
cellplot 元胞数组内部结构图示 。
char 把数值、符号、内联类转换为字符对象 。
chi2cdf 分布累计概率函数 。
chi2inv 分布逆累计概率函数 。
chi2pdf 分布概率密度函数 。
chi2rnd 分布随机数发生器 。
chol Cholesky分解 。
clabel 等位线标识
cla 清除当前轴
class 获知对象类别或创建对象 。
clc 清除指令窗
clear 清除内存变量和函数 。
clf 清除图对象
clock 时钟
colorcube 三浓淡多彩交叉色图矩阵 。
colordef 设置色彩缺省值 。
colormap 色图
colspace 列空间的基 。
close 关闭指定窗口
colperm 列排序置换向量 。
comet 彗星状轨迹图
comet3 三维彗星轨迹图 。
compass 射线图
compose 求复合函数
cond (逆)条件数
condeig 计算特征值、特征向量同时给出条件数 。
condest 范 -1条件数估计 。
conj 复数共轭
contour 等位线
contourf 填色等位线 。
contour3 三维等位线 。
contourslice 四维切片等位线图 。
conv 多项式乘、卷积
cool 青紫调冷色图
copper 古铜调色图
cos 余弦
cosh 双曲余弦
cot 余切
coth 双曲余切
cplxpair 复数共轭成对排列 。
csc 余割
csch 双曲余割
cumsum 元素累计和
cumtrapz 累计梯形积分 。
cylinder 创建圆柱
D d
dblquad 二重数值积分 。
deal 分配宗量
deblank 删去串尾部的空格符 。
dec2base 十进制转换为X进制 。
dec2bin 十进制转换为二进制 。
dec2hex 十进制转换为十六进制 。
deconv 多项式除、解卷 。
delaunay Delaunay 三角剖分 。
del2 离散Laplacian差分 。
demo Matlab演示
det 行列式
diag 矩阵对角元素提取、创建对角阵 。
diary Matlab指令窗文本内容记录 。
diff 数值差分、符号微分 。
digits 符号计算中设置符号数值的精度 。
dir 目录列表
disp 显示数组
display 显示对象内容的重载函数 。
dlinmod 离散系统的线性化模型 。
dmperm 矩阵Dulmage-Mendelsohn 分解 。
dos 执行DOS 指令并返回结果 。
double 把其他类型对象转换为双精度数值 。
drawnow 更新事件队列强迫Matlab刷新屏幕 。
dsolve 符号计算解微分方程 。
E e
echo M文件被执行指令的显示 。
edit 启动M文件编辑器
eig 求特征值和特征向量
eigs 求指定的几个特征值 。
end 控制流FOR等结构体的结尾元素下标 。
eps 浮点相对精度
error 显示出错信息并中断执行 。
errortrap 错误发生后程序是否继续执行的控制 。
erf 误差函数
erfc 误差补函数
erfcx 刻度误差补函数
erfinv 逆误差函数
errorbar 带误差限的曲线图 。
etreeplot 画消去树 。
eval 串演算指令
evalin 跨空间串演算指令 。
exist 检查变量或函数是否已定义 。
exit 退出Matlab环境 。
exp 指数函数
expand 符号计算中的展开操作 。
expint 指数积分函数
expm 常用矩阵指数函数
expm1 Pade法求矩阵指数 。
expm2 Taylor法求矩阵指数 。
expm3 特征值分解法求矩阵指数 。
eye 单位阵
ezcontour 画等位线的简捷指令 。
ezcontourf 画填色等位线的简捷指令 。
ezgraph3 画表面图的通用简捷指令 。
ezmesh 画网线图的简捷指令 。
ezmeshc 画带等位线的网线图的简捷指令 。
ezplot 画二维曲线的简捷指令 。
ezplot3 画三维曲线的简捷指令 。
ezpolar 画极坐标图的简捷指令 。
ezsurf 画表面图的简捷指令 。
ezsurfc 画带等位线的表面图的简捷指令 。
F f
factor 符号计算的因式分解 。
feather 羽毛图
feedback 反馈连接
feval 执行由串指定的函数 。
fft 离散Fourier变换 。
fft2 二维离散Fourier变换 。
fftn 高维离散Fourier变换 。
fftshift 直流分量对中的谱 。
fieldnames 构架域名 。
figure 创建图形窗
fill3 三维多边形填色图 。
find 寻找非零元素下标
findobj 寻找具有指定属性的对象图柄 。
findstr 寻找短串的起始字符下标 。
findsym 机器确定内存中的符号变量 。
finverse 符号计算中求反函数 。
fix 向零取整
flag 红白蓝黑交错色图阵 。
fliplr 矩阵的左右翻转 。
flipud 矩阵的上下翻转 。
flipdim 矩阵沿指定维翻转 。
floor 向负无穷取整
flops 浮点运算次数
flow Matlab提供的演示数据 。
fmin 求单变量非线性函数极小值点(旧版)
fminbnd 求单变量非线性函数极小值点 。
fmins 单纯形法求多变量函数极小值点(旧版)
fminunc 拟牛顿法求多变量函数极小值点 。
fminsearch 单纯形法求多变量函数极小值点 。
fnder 对样条函数求导
fnint 利用样条函数求积分 。
fnval 计算样条函数区间内任意一点的值 。
fnplt 绘制样条函数图形 。
fopen 打开外部文件
for 构成for环用
format 设置输出格式
fourier Fourier 变换 。
fplot 返函绘图指令
fprintf 设置显示格式 。
fread 从文件读二进制数据 。
fsolve 求多元函数的零点 。
full 把稀疏矩阵转换为非稀疏阵 。
funm 计算一般矩阵函数
funtool 函数计算器图形用户界面 。
fzero 求单变量非线性函数的零点 。
G g
gamma 函数
gammainc 不完全 函数 。
gammaln 函数的对数
gca 获得当前轴句柄
gcbo 获得正执行"回调"的对象句柄 。
gcf 获得当前图对象句柄
gco 获得当前对象句柄
geomean 几何平均值
get 获知对象属性
getfield 获知构架数组的域 。
getframe 获取影片的帧画面 。
ginput 从图形窗获取数据 。
global 定义全局变量
gplot 依图论法则画图
gradient 近似梯度
gray 黑白灰度
grid 画分格线
griddata 规则化数据和曲面拟合 。
gtext 由鼠标放置注释文字 。
guide 启动图形用户界面交互设计工具 。
H h
harmmean 调和平均值 。
help 在线帮助
helpwin 交互式在线帮助 。
helpdesk 打开超文本形式用户指南 。
hex2dec 十六进制转换为十进制 。
hex2num 十六进制转换为浮点数 。
hidden 透视和消隐开关 。
hilb Hilbert矩阵 。
hist 频数计算或频数直方图 。
histc 端点定位频数直方图 。
histfit 带正态拟合的频数直方图 。
hold 当前图上重画的切换开关 。
horner 分解成嵌套形式 。
hot 黑红黄白色图
hsv 饱和色图
I i
if-else-elseif 条件分支结构 。
ifft 离散Fourier反变换 。
ifft2 二维离散Fourier反变换 。
ifftn 高维离散Fourier反变换 。
ifftshift 直流分量对中的谱的反操作 。
ifourier Fourier反变换 。
i, j 缺省的"虚单元"变量 。
ilaplace Laplace反变换 。
imag 复数虚部
image 显示图象
imagesc 显示亮度图象 。
imfinfo 获取图形文件信息 。
imread 从文件读取图象 。
imwrite 把图象写成文件 。
ind2sub 单下标转变为多下标 。
inf 无穷大
info MathWorks公司网点地址 。
inline 构造内联函数对象 。
inmem 列出内存中的函数名 。
input 提示用户输入
inputname 输入宗量名 。
int 符号积分
int2str 把整数数组转换为串数组 。
interp1 一维插值
interp2 二维插值
interp3 三维插值
interpn N维插值
interpft 利用FFT插值 。
intro Matlab自带的入门引导 。
inv 求矩阵逆
invhilb Hilbert矩阵的准确逆 。
ipermute 广义反转置 。
isa 检测是否给定类的对象 。
ischar 若是字符串则为真 。
isequal 若两数组相同则为真 。
isempty 若是空阵则为真 。
isfinite 若全部元素都有限则为真 。
isfield 若是构架域则为真 。
isglobal 若是全局变量则为真 。
ishandle 若是图形句柄则为真 。
ishold 若当前图形处于保留状态则为真 。
isieee 若计算机执行IEEE规则则为真 。
isinf 若是无穷数据则为真 。
isletter 若是英文字母则为真 。
islogical 若是逻辑数组则为真 。
ismember 检查是否属于指定集 。
isnan 若是非数则为真
isnumeric 若是数值数组则为真 。
isobject 若是对象则为真 。
isprime 若是质数则为真 。
isreal 若是实数则为真 。
isspace 若是空格则为真 。
issparse 若是稀疏矩阵则为真 。
isstruct 若是构架则为真 。
isstudent 若是Matlab学生版则为真 。
iztrans 符号计算Z反变换 。
J j , K k
jacobian 符号计算中求Jacobian 矩阵 。
jet 蓝头红尾饱和色
jordan 符号计算中获得 Jordan标准型 。
keyboard 键盘获得控制权 。
kron Kronecker乘法规则产生的数组 。
L l
laplace Laplace变换 。
lasterr 显示最新出错信息 。
lastwarn 显示最新警告信息 。
leastsq 解非线性最小二乘问题(旧版)
legend 图形图例
lighting 照明模式
line 创建线对象
lines 采用plot 画线色 。
linmod 获连续系统的线性化模型 。
linmod2 获连续系统的线性化精良模型 。
linspace 线性等分向量 。
ln 矩阵自然对数
load 从MAT文件读取变量 。
log 自然对数
log10 常用对数
log2 底为2的对数
loglog 双对数刻度图形 。
logm 矩阵对数
logspace 对数分度向量 。
lookfor 按关键字搜索M文件 。
lower 转换为小写字母
lsqnonlin 解非线性最小二乘问题 。
lu LU分解
M m
mad 平均绝对值偏差
magic 魔方阵
maple &nb, sp; 运作 Maple格式指令 。
mat2str 把数值数组转换成输入形态串数组 。
material 材料反射模式 。
max 找向量中最大元素
mbuild 产生EXE文件编译环境的预设置指令 。
mcc 创建MEX或EXE文件的编译指令 。
mean 求向量元素的平均值 。
median 求中位数
menuedit 启动设计用户菜单的交互式编辑工具 。
mesh 网线图
meshz 垂帘网线图
meshgrid 产生"格点"矩阵 。
methods 获知对指定类定义的所有方法函数 。
mex 产生MEX文件编译环境的预设置指令 。
mfunlis 能被mfun计算的MAPLE经典函数列表 。
mhelp 引出 Maple的在线帮助 。
min 找向量中最小元素
mkdir 创建目录
mkpp 逐段多项式数据的明晰化 。
mod 模运算
more 指令窗中内容的分页显示 。
movie 放映影片动画
moviein 影片帧画面的内存预置 。
mtaylor 符号计算多变量Taylor级数展开 。
N n
ndims 求数组维数
NaN 非数(预定义)变量
nargchk 输入宗量数验证 。
nargin 函数输入宗量数 。
nargout 函数输出宗量数 。
ndgrid 产生高维格点矩阵 。
newplot 准备新的缺省图、轴 。
nextpow2 取最接近的较大2次幂 。
nnz 矩阵的非零元素总数
nonzeros 矩阵的非零元素 。
norm 矩阵或向量范数
normcdf 正态分布累计概率密度函数 。
normest 估计矩阵2范数 。
norminv 正态分布逆累计概率密度函数 。
normpdf 正态分布概率密度函数 。
normrnd 正态随机数发生器 。
notebook 启动Matlab和Word的集成环境 。
null 零空间
num2str 把非整数数组转换为串 。
numden 获取最小公分母和相应的分子表达式 。
nzmax 指定存放非零元素所需内存 。
O o
ode1 非Stiff 微分方程变步长解算器 。
ode15s Stiff 微分方程变步长解算器 。
ode23t 适度Stiff 微分方程解算器 。
ode23tb Stiff 微分方程解算器 。
ode45 非Stiff 微分方程变步长解算器 。
odefile ODE 文件模板 。
odeget 获知ODE 选项设置参数 。
odephas2 ODE 输出函数的二维相平面图 。
odephas3 ODE 输出函数的三维相空间图 。
odeplot ODE 输出函数的时间轨迹图 。
odeprint 在Matlab指令窗显示结果 。
odeset 创建或改写 ODE选项构架参数值 。
ones 全1数组
optimset 创建或改写优化泛函指令的选项参数值 。
orient 设定图形的排放方式 。
orth 值空间正交化
P p
pack 收集Matlab内存碎块扩大内存 。
pagedlg 调出图形排版对话框 。
patch 创建块对象
path 设置Matlab搜索路径的指令 。
pathtool 搜索路径管理器 。
pause 暂停
pcode 创建预解译P码文件 。
pcolor 伪彩图
peaks Matlab提供的典型三维曲面 。
permute 广义转置
pi (预定义变量)圆周率
pie 二维饼图
pie3 三维饼图
pink 粉红色图矩阵
pinv 伪逆
plot 平面线图
plot3 三维线图
plotmatrix 矩阵的散点图 。
plotyy 双纵坐标图
poissinv 泊松分布逆累计概率分布函数 。
poissrnd 泊松分布随机数发生器 。
pol2cart 极或柱坐标变为直角坐标 。
polar 极坐标图
poly 矩阵的特征多项式、根集对应的多项式 。
poly2str 以习惯方式显示多项式 。
poly2sym 双精度多项式系数转变为向量符号多项式 。
polyder 多项式导数
polyfit 数据的多项式拟合 。
polyval 计算多项式的值 。
polyvalm 计算矩阵多项式 。
pow2 2的幂
ppval 计算分段多项式
pretty 以习惯方式显示符号表达式 。
print 打印图形或SIMULINK模型 。
printsys 以习惯方式显示有理分式 。
prism 光谱色图矩阵
procread 向MAPLE输送计算程序 。
profile 函数文件性能评估器 。
propedit 图形对象属性编辑器 。
pwd 显示当前工作目录
Q q
quad 低阶法计算数值积分 。
quad8 高阶法计算数值积分(QUADL) 。
quit 推出Matlab 环境 。
quiver 二维方向箭头图 。
quiver3 三维方向箭头图 。
R r
rand 产生均匀分布随机数 。
randn 产生正态分布随机数 。
randperm 随机置换向量 。
range 样本极差
rank 矩阵的秩
rats 有理输出
rcond 矩阵倒条件数估计 。
real 复数的实部
reallog 在实数域内计算自然对数 。
realpow 在实数域内计算乘方 。
realsqrt 在实数域内计算平方根 。
realmax 最大正浮点数 。
realmin 最小正浮点数 。
rectangle 画"长方框" 。
rem 求余数
repmat 铺放模块数组
reshape 改变数组维数、大小 。
residue 部分分式展开 。
return 返回
ribbon 把二维曲线画成三维彩带图 。
rmfield 删去构架的域 。
roots 求多项式的根
rose 数扇形图
rot90 矩阵旋转90度
rotate 指定的原点和方向旋转 。
rotate3d 启动三维图形视角的交互设置功能 。
round 向最近整数圆整
rref 简化矩阵为梯形形式 。
rsf2csf 实数块对角阵转为复数特征值对角阵 。
rsums Riemann和 。
S s
save 把内存变量保存为文件 。
scatter 散点图
scatter3 三维散点图 。
sec 正割
sech 双曲正割
semilogx X轴对数刻度坐标图 。
semilogy Y轴对数刻度坐标图 。
series 串联连接
set 设置图形对象属性
setfield 设置构架数组的域 。
setstr 将ASCII码转换为字符的旧版指令 。
sign 根据符号取值函数
signum 符号计算中的符号取值函数 。
sim 运行SIMULINK模型 。
simget 获取SIMULINK模型设置的仿真参数 。
simple 寻找最短形式的符号解 。
simplify 符号计算中进行简化操作 。
simset 对SIMULINK模型的仿真参数进行设置 。
simulink 启动SIMULINK模块库浏览器 。
sin 正弦
sinh 双曲正弦
size 矩阵的大小
slice 立体切片图
solve 求代数方程的符号解 。
spalloc 为非零元素配置内存 。
sparse 创建稀疏矩阵
spconvert 把外部数据转换为稀疏矩阵 。
spdiags 稀疏对角阵
spfun 求非零元素的函数值 。
sph2cart 球坐标变为直角坐标 。
sphere 产生球面
spinmap 色图彩色的周期变化 。
spline 样条插值
spones 用1置换非零元素 。
sprandsym 稀疏随机对称阵 。
sprank 结构秩
spring 紫黄调春色图
sprintf 把格式数据写成串 。
spy 画稀疏结构图
sqrt 平方根
sqrtm 方根矩阵
squeeze 删去大小为1的"孤维" 。
sscanf 按指定格式读串 。
stairs 阶梯图
std 标准差
stem 二维杆图
step 阶跃响应指令
str2double 串转换为双精度值 。
str2mat 创建多行串数组 。
str2num 串转换为数
strcat 接成长串
strcmp 串比较
strjust 串对齐
strmatch 搜索指定串 。
strncmp 串中前若干字符比较 。
strrep 串替换
strtok 寻找第一间隔符前的内容 。
struct 创建构架数组
struct2cell 把构架转换为元胞数组 。
strvcat 创建多行串数组 。
sub2ind 多下标转换为单下标 。
subexpr 通过子表达式重写符号对象 。
subplot 创建子图
subs 符号计算中的符号变量置换 。
subspace 两子空间夹角 。
sum 元素和
summer 绿黄调夏色图
superiorto 设定优先级 。
surf 三维着色表面图
surface 创建面对象
surfc 带等位线的表面图 。
surfl 带光照的三维表面图 。
surfnorm 空间表面的法线 。
svd 奇异值分解
svds 求指定的若干奇异值 。
switch-case-otherwise 多分支结构 。
sym2poly 符号多项式转变为双精度多项式系数向量 。
symmmd 对称最小度排序 。
symrcm 反向Cuthill-McKee排序 。
syms 创建多个符号对象
T t
tan 正切
tanh 双曲正切
taylortool 进行Taylor逼近分析的交互界面 。
text 文字注释
tf 创建传递函数对象
tic 启动计时器
title 图名
toc 关闭计时器
trapz 梯形法数值积分
treelayout 展开树、林 。
treeplot 画树图
tril 下三角阵
trim 求系统平衡点
trimesh 不规则格点网线图 。
trisurf 不规则格点表面图 triu 上三角阵 try-catch 控制流中的Try-catch结构 type 显示M文件 。
U u
uicontextmenu 创建现场菜单 。
uicontrol 创建用户控件 。
uimenu 创建用户菜单
unmkpp 逐段多项式数据的反明晰化 。
unwrap 自然态相角
upper 转换为大写字母
V v
var 方差
varargin 变长度输入宗量 。
varargout 变长度输出宗量 。
vectorize 使串表达式或内联函数适于数组运算 。
ver 版本信息的获取
view 三维图形的视角控制 。
voronoi Voronoi多边形 。
vpa 任意精度(符号类)数值 。
W w
warning 显示警告信息 。
what 列出当前目录上的文件 。
whatsnew 显示Matlab中 Readme文件的内容 。
which 确定函数、文件的位置 。
while 控制流中的While环结构 。
white 全白色图矩阵
whitebg 指定轴的背景色 。
who 列出内存中的变量名
whos 列出内存中变量的详细信息 。
winter 蓝绿调冬色图
workspace 启动内存浏览器 。
X x , Y y , Z z 。
xlabel X轴名
xor 或非逻辑
yesinput 智能输入指令 。
ylabel Y轴名
zeros 全零数组
zlabel Z轴名
zoom 图形的变焦放大和缩小 。
ztrans 符号计算Z变换
sscanf与scanf类似,都是用于输入的,只是后者以键盘(stdin)为输入源,前者以固定字符串为输入源。
举个例子给你看:
char* pQueryStr=getenv("QUERY_STRING");。
char pName[256]; 。
sscanf(pQueryStr,"name=%s",pName); 。
printf("Hello %s!\n",pName);。
最后显示出来的就是:Hello tom!。
请检查你的s[i]是什么内容,还有第二个sscanf少了一个d,是%d!
================。
"%fl" 你写反了,是lf( long float)。
sscanf(...,"%lf\t",d);可以读。
具体你看下面的msdn吧
Read formatted data from a string. These functions are deprecated because more secure versions are available; see sscanf_s, _sscanf_s_l, swscanf_s, _swscanf_s_l.。
int sscanf(
const char *buffer,。
const char *format [,。
argument ] ... 。
);
int _sscanf_l(
const char *buffer,。
const char *format,。
locale_t locale [,。
argument ] ... 。
);
int swscanf(
const wchar_t *buffer,。
const wchar_t *format [,。
argument ] ... 。
);
int _swscanf_l(。
const wchar_t *buffer,。
const wchar_t *format,。
locale_t locale [,。
argument ] ... 。
);
Parameters
buffer
Stored data
format
Format-control string. For more information, see Format Specifications.。
argument
Optional arguments。
locale
The locale to use。
Return Value
Each of these functions returns the number of fields successfully converted and assigned; the return value does not include fields that were read but not assigned. A return value of 0 indicates that no fields were assigned. The return value is EOF for an error or if the end of the string is reached before the first conversion.。
If buffer or format is a NULL pointer, the invalid parameter handler is invoked, as described in Parameter Validation. If execution is allowed to continue, these functions return -1 and set errno to EINVAL.。
For information on these and other error codes, see _doserrno, errno, _sys_errlist, and _sys_nerr.。
Remarks
The sscanf function reads data from buffer into the location given by each argument. Every argument must be a pointer to a variable with a type that corresponds to a type specifier in format. The format argument controls the interpretation of the input fields and has the same form and function as the format argument for the scanf function. If copying takes place between strings that overlap, the behavior is undefined.。
Security Note 。
When reading a string with sscanf, always specify a width for the %s format (for example, "%32s" instead of "%s"); otherwise, improperly formatted input can easily cause a buffer overrun.。
swscanf is a wide-character version of sscanf; the arguments to swscanf are wide-character strings. sscanf does not handle multibyte hexadecimal characters. swscanf does not handle Unicode full-width hexadecimal or "compatibility zone" characters. Otherwise, swscanf and sscanf behave identically.。
The versions of these functions with the _l suffix are identical except that they use the locale parameter passed in instead of the current thread locale.。
Generic-Text Routine Mappings。
TCHAR.H routine _UNICODE & _MBCS not defined _MBCS defined _UNICODE defined 。
_stscanf
sscanf
sscanf
swscanf
_stscanf_l
_sscanf_l
_sscanf_l
_swscanf_l
Requirements
Routine Required header Compatibility 。
sscanf, _sscanf_l。
<stdio.h>。
ANSI, Windows 95, Windows 98, Windows 98 Second Edition, Windows Millennium Edition, Windows NT 4.0, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003。
swscanf, _swscanf_l。
<stdio.h> or <wchar.h>。
ANSI, Windows 95, Windows 98, Windows 98 Second Edition, Windows Millennium Edition, Windows NT 4.0, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003。
For additional compatibility information, see Compatibility in the Introduction.。
Example
Copy Code
// crt_sscanf.c。
// compile with: /W1。
// This program uses sscanf to read data items。
// from a string named tokenstring, then displays them.。
#include <stdio.h>。
int main( void )。
char tokenstring[] = "15 12 14...";。
char s[81];。
char c;
int i;
float fp;
// Input various data from tokenstring:。
// max 80 character string:。
sscanf( tokenstring, "%80s", s ); // C4996。
sscanf( tokenstring, "%c", &c ); // C4996。
sscanf( tokenstring, "%d", &i ); // C4996。
sscanf( tokenstring, "%f", &fp ); // C4996。
// Note: sscanf is deprecated; consider using sscanf_s instead。
// Output the data read。
printf( "String = %s\n", s );。
printf( "Character = %c\n", c );。
printf( "Integer: = %d\n", i );。
printf( "Real: = %f\n", fp );。
Output
String = 15
Character = 1
Integer: = 15
Real: = 15.000000。
.NET Framework Equivalent。
See Parse methods, such as System::Double::Parse.。
See Also
Reference
Stream I/O
fscanf, _fscanf_l, fwscanf, _fwscanf_l。
scanf, _scanf_l, wscanf, _wscanf_l。
sprintf, _sprintf_l, swprintf, _swprintf_l, __swprintf_l。
_snprintf, _snprintf_l, _snwprintf, _snwprintf_l。
地址:
ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.VisualStudio.v80.chs/dv_vccrt/html/c2dcf0d2-9798-499f-a4a8-06f7e2b9a80c.htm。