scanf正则表达式

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>

void main()
{
    char str[100] = { 0 };
    //scanf("%s", str);//空格当做结束
    //scanf("%[^\n]", str);//处理空格 遇到换号截止
    //scanf("%[^=]", str);//=号作为结束符 遇到等号截止
    //scanf("%[a-z]", str);//只接受A-Z范围的字符 遇到不符合的截止
    scanf("%[^a-z]", str);//遇到不符合a-z的截止
    printf("str=%s\n", str);

    system("pause");
}
时间: 2024-12-13 11:01:54

scanf正则表达式的相关文章

scanf正则表达式部分总结

正则表达式 scanf() 函数的正则用法: scanf("%[^\n]",str) 其中的 \n 表示保存的字符串以换行符为截止,并且不存储该换行符号,这句话的作用是允许该函数读入除换行符以外的空白符(空格,table),平时输入时,scanf()不能像gets()一样读入空格等空白符: scanf("%*[^\n]");  其中 \n 表示换行,其中*号表示该行内容不赋值给任何变量,直接跳过该行内容. 以下面的代码为例进行讨论 1 # include <s

C语言 scanf与正则表达式的搭配及应用

前言 当输入流是一个字符串,我们需要在其中提取我们所需要的数值时,正则表达式就显得很有用. 如果我们能在输入的时候,就过滤掉无用信息,就可以省去后期提取数值的步骤. 使用方法 scanf("%ns", str); 表示读取长度为n的字符串 输入:123456 输出str:123 ( 以scanf("%3s", str);为例 ) scanf("%[a-z]", str); 表示读取a-z的小写字母,出现非a-z的小写字母,立即停止读取. 输入:a

3.2.5.2 模拟C函数 scanf()功能

在Python里,没有与scanf()直接等同的功能函数,因此需要格式化输入,就需要使用正则表达式的功能来实现,并且正则表达式的功能比scanf()更加灵活,功能更加强大,下面就来列出一些等同的表达: scanf()格式字符串 正则表达式 %c . %5c .{5} %d [-+]?\d+ %e,%E,%f,%g [-+]?(\d+(\.d*)?|\.\d+)([eE][-+]?\d+)? %i [-+]?(0[xX][\dA-Fa-f]+|0[0-7]*|\d+) %o [-+]?[0-7]+

Codeforce727B --- Bill Total Value(字符串处理 正则表达式)

先说一下正则表达式 %*[a-z]表示忽略前面的小写字符,%[0-9]表示把紧接着非字符的连续数字存入t字符串中去; 从"abc123de4f"中得到"123"; #include <stdio.h> int main() { char s[50] = "abc123de4f", t[50] = {0}; sscanf(s, "%*[a-z]%[0-9]", t); printf("%s\n",

【C语言天天练(二十)】scanf函数详解

引言:scanf函数虽然是学习C语言时比较早就接触的一个函数,但在使用过程中,发现真正掌握它却并不容易.本文就通过各种例子来详细的总结一下该函数的各种用法,假设它的调用格式为 scanf("<格式化字符串>",<地址表>). 1.一般使用scanf函数时都是为某个变量赋值,不考虑它的返回值.但是任何函数都是需要返回的(即使返回类型用void,也可以认为只是调用了return语句,只是并没有返回什么东西而已),同样的scanf函数也是有返回的,它的返回值是成功读取

ZOJ 3427 Array Slicing (scanf使用)

题意  Watashi发明了一种蛋疼(eggache) 语言  你要为这个语言实现一个 array slicing 函数  这个函数的功能是 有一个数组初始为空  每次给你一个区间[ l, r)  和一些数   你要输出数组中下标在[l, r) 之间的数  然后删除这些数  然后把给你的那些数插入到数组的下标为 l 的位置 签到模拟题  一直没看懂题意  看了Watashi的scanf高端用法  弱到连scanf都不会用了  强行到cpp预习了一下  先记录一下那些并不了解的scanf用法吧 i

c语言中怎样用scanf()读入带空格的字符串?

楼主 发表于: 2011-01-14 15:39:55 #include <stdio.h> int main(void){ int i; char a[5]; scanf("%s", a); printf("%s\n", a); return 0; } 运行输入hello world 回车则输出的只是空格之前的部分,怎样把空格之后的部分也输出呢? 2楼 回复于: 2011-01-14 17:27:23 谁说scanf不能做到? #include <

sscanf函数和正则表达式

此文所有的实验都是基于下面的程序: char str[10]; for (int i = 0; i < 10; i++) str[i] = '!'; 执行完后str的值为 str = "!!!!!!!!!!" 我们把str的每个字符都初始化为惊叹号,当str的值发生变化时,使用printf打印str的值,对比先前的惊叹号,这样就可以方便的观察str发生了怎样的变化.下面我们做几个小实验,看看使用sscanf和正则表达式格式化输入后,str有什么变化. 实验1: sscanf(&q

hihoCoder 挑战赛7(正则表达式-栈)

题目1 : 正则表达式 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 给定一个字符串,判断其是否为合法的正则表达式. 一个正则表达式定义为: 1:0是正则表达式,1也是正则表达式. 2:P和Q都是正则表达式,则PQ是正则表达式. 3:P是正则表达式,则(P)是正则表达式 4:P是正则表达式,则P*也是正则表达式 5:P和Q都是正则表达式,则P|Q是正则表达式. 输入 输入包含多组数据. 每组数据为一行一个字符串,长度不超过100. 输出 对于每组数据,如果输入是合法