sscanf的使用
sscanf的使用
语法
int ssanf(const char *buffer, const char *format,[argument]...);
参数
- buffer存储的数据
- format控件字符串
- argument可选自变量
说明
第二个参数可以是一个或者多个 {%[*] [width] [{h | I | I64 | L}]type | ' ' | '\t' | '\n' | 非%符号}
这个参数说明暂时不清楚,先不用管它,稍后通过例子来说明
返回值
函数将返回成功赋值的字段个数;返回值不包括已读取但未值的字段个数。返回值为0表示在第一次读取之前到达字符串结尾,则返回EOF
sscanf("1 2 3","%d %d %d",buf1, buf2, buf3);
//成功调用返回值为3,即buf1,buf2,buf3均成功转换。
sscanf("1 2","%d %d %d",buf1, buf2, buf3);
//成功调用返回值为2,即只有buf1,buf2成功转换。
sscanf("hello, world", "%*s%s", buf);
//成功调用返回值为1,buf成功转换
使用实例
- 一般用法——将一字符串赋值给另一个字符串 - sscanf("123456","%s",buf);
- 取指定长度的字符串 - sscanf("1233456","%4s",buf);
- 取到指定字符为止的字符串 - sscanf("123456 abcdef","%[^ ]",buf)- 其中 - [^ ]中- ^表示全集中除去空格的集合。是自定义的一种规则。
- 取到指定字符集为止的字符串 - sscanf("123456abcdedfBCDEF", "%[^A-Z]", buf);- 其中 - [^A-Z]表示全集中除去- [A-Z]的集合,也就是说遇到不是该集合中的字符就停止读取。
- 取仅包含指定字符集的字符串 - sscanf("123456abcdeBCDEF","[1-9a-z]",buf);- 其中[1-9a-z]表示集合,用 - [1-9,a-z]表示也可以
- 给定一个字符串iios/12DDWDFF@122 ,获取/ 和 @ 之间的字符串,可以按照前面第3条规则,来读取。 - sscanf("iios/12DDWDFF@122 ","%*[^/]/%[^@]",buf);- 其中 - %*[^/]/%[^@]表示先读取到遇到- /为止的字符串(- /并没有读入),然后因为有- *所以不写入,中间加的一个- /是为了读取缓冲区中的- /,紧接着- %[^@]读取遇到- @的字符串,写入到- buf里面。
- 分割字符串 - sscanf("hello, world","%*s%s",buf);- 最终写入 - buf的是- world。因为这利用了- %s读取遇到空格停止的特性。
sscanf的使用的更多相关文章
- C语言关于利用sscanf实现字符串相加减
		#include<stdio.h>#include<string.h>void main(){ int a; int b; char str1[10] = "9999 ... 
- sscanf提取字符串中的数据php
		1.需求 理解sscanf的作用 2.例子 $str = "age:30 weight:60kg"; sscanf($str,"age:%d weight:%dkg&qu ... 
- sscanf与正则表达式(转)
		今天翻google reader的时候看到这样一篇文章,介绍的是sscanf的高级用法.直到今天我才知道sscanf是可以直接用正则表达式的,惭愧. 在msdn中sscanf的声明如下 int ssc ... 
- C语言函数sscanf()的用法
		从文件读取数据是一件很麻烦的事,所幸有sscanf()函数. C语言函数sscanf()的用法 sscanf() - 从一个字符串中读进与指定格式相符的数据. 函数原型: int sscanf( st ... 
- sscanf()函数的使用及其实例
		资料引自: 传送门 sscanf函数原型: Int sscanf( const char * src, const char * format, ...); int scanf( const char ... 
- C 语言sscanf
		C语言以sscanf逗号作为分割符 ]={}; ]={}; ]={}; sscanf(],&buf_b[],&buf_b[]); printf("************** ... 
- Babelfish(二分查找,字符串的处理略有难度,用sscanf输入)
		Babelfish Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 28581 Accepted: 12326 题目链接: ... 
- (转)sscanf() - 从一个字符串中读进与指定格式相符的数据
		(转)sscanf() - 从一个字符串中读进与指定格式相符的数据 sscanf() - 从一个字符串中读进与指定格式相符的数据. 函数原型: Int sscanf( string str, stri ... 
- sscanf函数
		sscanf函数用法举例 #include <stdio.h> #include <string.h> #define N 512 int main() { char buf[ ... 
- hdu 1036 (I/O routines, fgets, sscanf, %02d, rounding, atoi, strtol)                                                       分类:            hdoj             2015-06-16 19:37    32人阅读    评论(0)    收藏
		thanks to http://stackoverflow.com/questions/2144459/using-scanf-to-accept-user-input and http://sta ... 
随机推荐
- 慕课笔记-Java入门第二季
			1.java对象的使用 (1)创建对象 类名 对象名=new 类名(); (2)使用对象 引用对象的属性:对象名.属性; 引用对象的方法:对象名.方法(); Note: ①Java会给成员变量赋初始值 ... 
- Rsync备份同步数据工具
			Rsync is a fast and extraordinarily versatile file copying tool. Rsync是一款开源的,快速的,多功能的,可实现全量和增量的本地 ... 
- react native的Navigator组件示例
			import React, {Component} from 'react';import {ScrollView, StyleSheet, Text, View, PixelRatio} from ... 
- B. Mancala  (Codeforces Round #478 (Div. 2))
			#include <bits/stdc++.h> using namespace std; ; typedef long long ll; ll a[maxn]; ll b[maxn]; ... 
- UVa12304(计算几何中圆的基本操作)
			断断续续写了250多行的模拟,其间被其他事情打扰,总共花了一天才AC吧~ 这道题目再次让我明白,有些事情看起来很难,实际上并没有我们想象中的那么难.当然了我主要指的不是这个题的难度…… 也是初学计算几 ... 
- Dubbo端口占用错误信息
			SEVERE: Exception sending context initialized event to listener instance of class com.common.SysCont ... 
- compile and link
			1. C 中 头文件的作用? 2. difference between *.a and *.so? 3. object file and executable file 4. search path ... 
- 转 OUI and OPatch Do Not Recognize JDK/JRE on Windows
			issue 1: 新覆盖的opatch 提示,无法opatch 报错 此时不应有1.6 D:\app\Administrator\product\11.2.0\dbhome_1\OPatch\ocm\ ... 
- D. Anton and Chess 模拟题 + 读题
			http://codeforces.com/contest/734/problem/D 一开始的时候看不懂题目,以为象是中国象棋那样走,然后看不懂样例. 原来是走对角线的,长知识了. 所以我们就知道, ... 
- Mysql 事务隔离级别(图文详解)
			本文由 SnailClimb 和 BugSpeak 共同完成. 事务隔离级别(图文详解) 什么是事务? 事物的特性(ACID) 并发事务带来的问题 事务隔离级别 实际情况演示 脏读(读未提交) 避免脏 ... 
