scanf正则表达式部分总结

Posted robin5

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了scanf正则表达式部分总结相关的知识,希望对你有一定的参考价值。

正则表达式

 scanf() 函数的正则用法:

 scanf("%[^ ]",str) 其中的   表示保存的字符串以换行符为截止,并且不存储该换行符号,这句话的作用是允许该函数读入除换行符以外的空白符(空格,table),平时输入时,scanf()不能像gets()一样读入空格等空白符;

 scanf("%*[^ ]");  其中   表示换行,其中*号表示该行内容不赋值给任何变量,直接跳过该行内容。

以下面的代码为例进行讨论

 1 # include <stdio.h>
 2 
 3 int main(void)
 4 {
 5     char str1[100];
 6     char str2[100];
 7     char str3[100];
 8     char str4[100];
 9     
10     scanf("%[^
]",str1);
11     scanf("%[^#]",str2);
12     scanf("%*[^
]",str3);
13     scanf("%*[^#]",str4);
14 
15     puts(str1);
16     puts(str2);
17     puts(str3);
18     puts(str4);
19     
20     return 0;
21 } 

输入内容: 其中的  表示换行

hello,   world!
     //str1
hi,Alice.
          //str2
hei,Alice.#
      //str2
Hello,Friday!
   //str3
Hi,Morning!#
  //str3

输出内容:

hello,   world! // str1
hi,Alice.      // str2
hei,Alice.    // str2

讨论:

str1:以换行符为结束,且能够将空格符号读入并赋值给变量;

str2:以#号为结束,可以读入换行符,并将内容赋值给变量;

str3:无输出。以换行符为结束,但是不赋值给变量;

str4:无输出。以#号为结束,内容不赋值给变量。

 

以上是关于scanf正则表达式部分总结的主要内容,如果未能解决你的问题,请参考以下文章

通过 Java 正则表达式提取 semver 版本字符串的片段

正则表达式匹配特定的 URL 片段而不是所有其他 URL 可能性

JavaScript 正则表达式学习

text 正则表达式片段

markdown 正则表达式模式片段

关于正则表达式的总结