scanf正则表达式部分总结
正则表达式
scanf() 函数的正则用法:
scanf("%[^\n]",str) 其中的 \n 表示保存的字符串以换行符为截止,并且不存储该换行符号,这句话的作用是允许该函数读入除换行符以外的空白符(空格,table),平时输入时,scanf()不能像gets()一样读入空格等空白符;
scanf("%*[^\n]"); 其中 \n 表示换行,其中*号表示该行内容不赋值给任何变量,直接跳过该行内容。
以下面的代码为例进行讨论
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("%[^\n]",str1); 11 scanf("%[^#]",str2); 12 scanf("%*[^\n]",str3); 13 scanf("%*[^#]",str4); 14 15 puts(str1); 16 puts(str2); 17 puts(str3); 18 puts(str4); 19 20 return 0; 21 }
输入内容: 其中的\n 表示换行
hello, world!\n //str1 hi,Alice.\n //str2 hei,Alice.#\n //str2 Hello,Friday!\n //str3 Hi,Morning!#\n //str3
输出内容:
hello, world! // str1 hi,Alice. // str2 hei,Alice. // str2
讨论:
str1:以换行符为结束,且能够将空格符号读入并赋值给变量;
str2:以#号为结束,可以读入换行符,并将内容赋值给变量;
str3:无输出。以换行符为结束,但是不赋值给变量;
str4:无输出。以#号为结束,内容不赋值给变量。
本人计算机小白一枚,对编程有浓厚兴趣,在此贴出自己的计算机学习历程,还有很多不足,望多多指教!
读书后发现好多的内容与具体专业有偏差,没来得及完成,虽然“有时间我就会做...”是人生最大的谎言,但有时间我会继续搞定未完成的内容,有始有终,兴趣使然!