`
jack_boy
  • 浏览: 138377 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

scanf, fscanf, sscanf正则表式

阅读更多
       int scanf(const char *format, ...);
       int fscanf(FILE *stream, const char *format, ...);
       int sscanf(const char *str, const char *format, ...);
其中的format可以是一个或多个 {%
  • [width] [{h | l | I64 | L}]type | ' ' | '\t' | '\n' | 非%符号}
  •   注:
      1、 * 亦可用于格式中, (即 %*d 和 %*s) 加了星号 (*) 表示跳过此数据不读入. (也就是不把此数据读入参数中)
      2、{a|b|c}表示a,b,c中选一,[d],表示可以有d也可以没有d。
      3、width表示读取宽度。
      4、{h | l | I64 | L}:参数的size,通常h表示单字节size,I表示2字节 size,L表示4字节size(double例外),l64表示8字节size。
      5、type :这就很多了,就是%s,%d之类。
      6、特别的:%*[width] [{h | l | I64 | L}]type 表示满足该条件的被过滤掉,不会向目标参数中写入值
      支持集合操作:
      %[a-z] 表示匹配a到z中任意字符,贪婪性(尽可能多的匹配)
      %[aB'] 匹配a、B、'中一员,贪婪性
      %[^a] 匹配非a的任意字符,贪婪性

    例子:
    char *str =  "u0p18968Fanonymous@ttttt.xxx.comTroot@ppppp.yyyy.com\n aaaa\r\n";
      //sscanf(str, "%[^F]F%[^T]T%s%[^ /t/n/r]", header, from, rcptto);
      sscanf(str, "%[^F]F%[^T]T%s", header, from, rcptto);                                                                       
      fprintf(stderr, "header(%s), from(%s), to(%s)\n", header, from, rcptto);

    输出结果:
    header(u0p18968), from(anonymous@ttttt.xxx.com), to(root@ppppp.yyyy.com)


    注:
    scanf族函数会自动去除掉字符串中的空白字符' ', '\t', '\r', '\n'
    分享到:
    评论

    相关推荐

      c语言 sscanf,scanf,fscanf正则表达式用法

      每种语言都对正则表达式有着不同程度的支持,在C语言中,有输入功能的这三个函数对正则表达式的支持并不强大,但是我们还是有必要了解一下。 首先来看看他们的原型: #include int scanf(const char *format, ...)...

      fprintf、printf、sprintf、fscanf、scanf、sscanf_格式化输入输出

      fprintf、printf、sprintf、fscanf、scanf、sscanf_格式化输入输出

      详解C语言sscanf()函数、vsscanf()函数、vscanf()函数

      在C语言中,`sscanf()`、`vsscanf()`和`vscanf()`函数都是用于从不同来源读取数据并按指定格式进行解析的。它们是`scanf()`家族的一部分,提供了一种灵活的方式来处理输入数据。 1. `sscanf()`函数: `sscanf()`...

      目录版fprintf_sscanf_等格式化输入输出

      带有目录查询的fprintf、printf、sprintf、fscanf、scanf、sscanf_格式化输入输出

      浅析C语言中printf(),sprintf(),scanf(),sscanf()的用法和区别

      在C语言中,`printf()`, `sprintf()`, `scanf()`, 和 `sscanf()` 都是与输入输出相关的函数,它们都遵循类似的格式化规则,但用途和工作方式有所不同。下面将详细阐述这些函数的用法和特点。 1. **printf()**: - ...

      sscanf,sprintf,fscanf,fprintf 系列函数的用法小结 doc

      `sscanf`函数类似于`scanf`,但是它从一个指定的字符串中读取数据而不是从标准输入(如键盘)。这个函数允许开发者从内存中的字符串读取符合特定格式的数据,并将其存储到变量中。 **参数解析:** - `str`:指向...

      sscanf ,sscanf ,sscanf

      在C语言中,`scanf` 和 `sscanf` 是处理输入数据的两个重要函数,尤其适用于读取特定格式的文件或处理字符串。尽管它们的功能相似,但应用场景有所不同。`scanf` 主要用于从标准输入流(如键盘输入)读取数据,而 `...

      sscanf_sscanf_solutioncw5_

      `sscanf` 函数是C语言中的一个标准输入输出库函数,主要用于从字符串中读取数据,它是`scanf`函数的变体,适用于处理已知来源的字符串输入,而不是从标准输入流中读取。在标题"sscanf_sscanf_solutioncw5_"中,暗示...

      sscanf练习详解-分割字符串

      在C语言和C++中,`sscanf`函数是`scanf`家族的一部分,用于从已格式化的字符串中读取数据。这个函数对于处理固定格式的数据输入非常有用,尤其是在需要从字符串中提取特定部分时。本篇文章将深入讲解如何使用`sscanf...

      关于scanf gets fscanf fopen等系列函数在VS中不安全要使用_s的解决方法1

      在Microsoft Visual Studio (VS) 编译环境中,为了提高代码的安全性,开发团队引入了一组带下划线后缀的函数,如`fopen_s`、`scanf_s`和`gets_s`,来替代传统的`fopen`、`scanf`和`gets`。这些带下划线的函数在处理...

      sscanf陷阱

      它的工作方式类似于`scanf`函数,但`sscanf`是从指定的字符串中读取数据而不是从标准输入设备。其基本语法格式如下: ```c int sscanf(const char *str, const char *format, ...); ``` - `str`: 指向包含待解析...

      sscanf函数的高级用法

      它类似于`scanf`函数,但输入源不是标准输入(如键盘),而是用户指定的字符串。这使得`sscanf`在处理文件数据、日志分析以及任何需要解析特定格式字符串的场景中非常有用。 #### 二、sscanf函数的基本格式 `...

      STM32实现printf和scanf源代码,保证能运行

      2. **重定向scanf**: 重写中的fscanf函数,使其从UART读取数据。 3. **实现getchar**: scanf会调用getchar函数来读取字符。这里需要实现一个getchar函数,它在接收到新的字符时返回,并可能需要处理数据接收中断。 4...

      sscanf 表达式详解

      它的工作方式与`scanf`相似,但其输入来源不是键盘而是内存中的字符串。`sscanf`能够根据用户定义的格式字符串读取数据,并将这些数据存储到用户提供的变量中。这使得`sscanf`成为一个非常强大的工具,尤其是在处理...

      explain-scanf:解释fscanf背后的魔力

      在TypeScript中,虽然没有内置的`fscanf`函数,但可以通过Node.js的`fs`模块结合正则表达式或其他方法实现类似的功能,读取和解析文件中的格式化数据。 总结起来,`fscanf`是C语言中用于格式化输入的强大工具,它...

      sscanf()的用法

      `sscanf()`是C语言中的一个输入函数,用于从给定的字符串中解析数据,其工作方式类似于`scanf()`,但`scanf()`从标准输入(键盘)读取数据,而`sscanf()`则从已有的字符串中读取。这个函数在处理格式化的字符串输入...

      修改版--支持全正则表达式的ssanf_s---cscanf

      在C语言中,标准输入输出函数scanf系列是处理数据输入的重要工具,但它们的功能相对有限,不支持复杂的正则表达式匹配。然而,对于一些需要进行更复杂格式验证的应用场景,如处理网络数据或文本解析,正则表达式的...

      sscanf 详解

      它的工作原理与`scanf`类似,只不过`scanf`是从标准输入流(通常是键盘)读取数据,而`sscanf`则是从一个固定的字符串中读取数据。这种灵活性使得`sscanf`在处理文本数据时非常有用。 #### 二、函数原型 `sscanf`的...

    Global site tag (gtag.js) - Google Analytics