C++:sscanf函数的用法

绪:
头文件 #include <iostream>里,
sscanf具有从字符串中取出整数,浮点数,和字符串等功能;
本文主要介绍sscanf函数的定义,用法和示例;

操作方法

  • 01

    sscanf定义: int sscanf (const char *str, const char * format,........); 函数说明: sscanf将str字符串以format格式进行转换,并将转换的结果存于对应的参数内。 返回值: 成功则返回参数数目; 失败则返回-1; 例如:sscanf(str,"%d%d%s", &i,&i2, &s); 如果三个都读入成功,则返回3; 如果只读入第一个整数到i则返回1。

  • 02

    用法一:从字符串中去除整数,浮点数,和字符串等; #include <iostream> using namespace std; int 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); getchar(); return 0; }

  • 03

    用法二: 格式: sscanf(stringBuf.c_str(), "%20[^#]#%20[^ ]",......) 语句中,""中的内容含义为: “%[ ]”符号用于声明字符串,比“%s”更具体,可以用于设置读取的样式。 例如“%[a-z]”只读取小写字母,读到其它字符就结束。 注意,方括号中如果有“^”,代表一直读到某字符为止。 例: “%[^#]”:读取字符串,一直到出现“#”号为止。 “%20[^#]”:读取20个字节的字符串,出现“#”号时结束。 所以,“%20[^#]#%20[^ ]”的意义就是: 读取两个20字节大小的字符串,第一个字符串可以用#结束,第二个字符串可以用回车符结束。

  • 04

    用法三: sscanf可以从字符串中取出整数、浮点数和字符串等等。 ①常见用法。 char str[512]={0}; sscanf("123456","%s",str); printf("str=%s", str); ②取指定长度的字符串。 如在下例中,取最大长度为4字节的字符串。 sscanf("123456","%4s",str); printf("str=%s", str); ③取指定字符为止的字符串。 如在下例中,取遇到空格为止字符串。 sscanf("123456abcdedf","%[^]", str); printf("str=%s", str); ④取仅包含指定字符集的字符串。 如在下例中,取仅包含1到9和小写字母的字符串。 sscanf("123456abcdedfBCDEF","%[1-9a-z]",str); printf("str=%s",str); ⑤取指定字符集为止的字符串。 如在下例中,取遇到大写字母为止的字符串。 sscanf("123456abcdedfBCDEF","%[^A-Z]",str); printf("str=%s",str);

  • 05

    应用四: 名称: sscanf() - 从一个字符串中读进与指定格式相符的数据. 语法: int sscanf( string str, string fmt, mixed var1, mixed var2 ... ); 用法: 每一个%d、%s对应一个参数, 按顺序var1, var2 ..., %d读入一个整数到参数中, 而%s 读入一个字符串. *亦可用于格式中,即%*d 和%*s,加了星号 (*) 表示跳过此数据不读入。 sscanf()返回符合格式的%d和%s总数;

  • 06

    sscanf的应用: 一个文本文件, 每行是一条记录, 每条记录中包含多个字段, 每个字段之间以某种定界符分开; 举例如下: Notebook, IBM, ThinkPad X32, 6, 12000 各字段以逗号分隔,内容依次是:物品名称,生产厂家,型号,数量,价格; 如果要对这样的一行记录进行处理,提取出各个字段,怎么做比较好呢? 用标准库函数sscanf,处理这样的数据,只需一行就可以了。 核心部分如下: float price; int quantity; char category[21], name[21]; char vendor[21], sku[21]; char buf[201]; fp = fopen(filename, "r"); fgets(buf, 200, fp); sscanf(buf, "%20[^#]#%20[^#]#%f#%i#%20[^#]#%20[^\n]",name, sku, &price, &quantity, category, vendor); 其中: %20[^#]#-最多读入20个字符,直到遇见界定符#,但不包含界定符 %f#-读入一个浮点数,直到遇见界定符# %i#-读入一个整数,直到遇见界定符# %20[^\n]-最多读入20个字符,忽略行尾的回车符

  • 07

    示例: sscanf(user, "%127[^:]:%127[^ ]", user_name, password); 其中: "%127[^:]:%127[^ ]",是正则表达式 127表示最多可以接受127个字符, [^:]是正则表达式,表示非":",到":"结束 %127[^ ],[^ ]是正则表达式,表示非" ",到" "结束 所以,如果user是"wpc:123456"的字符串, 那么经过上面的sscanf后,user_name是wpc,而password是123456。

(0)

相关推荐

  • Excel中用身份证号算生日:MID函数的用法与技巧

    Excel中用身份证号算生日:MID函数的用法与技巧,MID函数的作用是返回文本字符串中从指定位置开始的特定数目的字符(该数目由用户指定)。 语法 MID(text,start_num,num_cha ...

  • excel表格的基本操作方法之函数应用(sum函数的用法)

    简介 excel软件的功能非常强大 ,可以帮助我们完成很多工作,其中的函数的应用非常重要,掌握了它的基本操作,可以让我们的工作事半功倍。今天我就来说一说sum函数的用法。 方法/步骤 首先打开exce ...

  • Excel中IsDate函数的用法

    一、IsDate 函数语法 IsDate函数功能:返回 Boolean 值,指出一个表达式是否可以转换成日期。 语法 IsDate(expression) 必要的 expression 参数是一个 V ...

  • EXCEL表格中HEX2OCT函数的用法详解

    Excel是一个常用办公工具,它本身功能很是强大,自带了很多已经预定义的函数,可以随时根据需要进行调用.而HEX2OCT函数是将十六进制数值转换成八进制数值的函数,那如何在EXCEL表格中使用该函数呢 ...

  • excel如何使用COUNTIF函数?COUNTIF函数的用法介绍

    使用函数进行统计会大大提高工作效率,这里介绍下关于COUNTIF函数的用法,不会的朋友快快来学习吧! 方法/步骤 首先要有原始数据的一个表格. 选择统计结果的一个单元格,然后插入函数,点击fx. 在函 ...

  • excel表格column函数的用法(excel常用的columns函数)

    COLUMN函数是Excel中一个常用的函数,它可以用来返回给参数单元格的列号.语法结构是=COLUMN([reference])COLUMN函数的reference参数为可选参数,如果省略参数ref ...

  • search函数的用法(countifs函数怎么用)

    本期要分享的是SEARCH函数的基本用法.一.SEARCH函数的基本语法SEARCH函数用于查找指定查找值在字符串中的起始位置.语法=SEARCH(找什么,在哪找,从第几位开始找)二.SEARCH函数 ...

  • Excel中Countif函数的用法

    Countif函数可以实现按照某个制定条件来统计个数,应用非常广泛.今天就来介绍Excel中Countif函数的用法. 操作方法 01 Countif函数两个参数,第一个参数为计数区域,第二个参数为计 ...

  • Excel中MIN函数的用法

    今天详细介绍下Excel中MIN函数的用法. 操作方法 01 MIN函数是求最小值函数,用法比较简单,如下图所示: 02 函数参数可以是若干数字如下图所示: 03 也可以是若干数字单元格,如下图所示: ...