scanf家族 正则式
来源:互联网 发布:桔子网络理财可靠吗 编辑:程序博客网 时间:2024/05/06 20:30
好吧,scanf家族函数很强大。
3、去除1个字符串中包含另一个字符串的字符
下面介绍几个例子
1、输入文件,输出字符串数大于80的行
#include <stdio.h>#include <stdlib.h>/*a数组的长度至少为n+2*/void fun(char a[], int n){ int i; char s[18], t[18]; //输出大于n的行,构造输入表达式如%80[^\n],以换行符为结束 sprintf(s, "%%%d[^\n]", n+1); sprintf(t, "%%%d[^\n]%%c", n); for (scanf("%[\n]", a); (i = scanf(t, a, a+n+1)) != EOF; scanf("%[\n]", a)) { if (i == 2 && a[n+1] != '\n') {//如果输入两个参数,且第二个参数不是换行符,说明是遇到大于n的行 printf("%s%c", a, a[n+1]); while (scanf(s, a) > 0) { printf("%s", a); } printf("\n"); } }}int main(void){ char a[11] = "asd"; freopen("hello.txt", "r", stdin); fun(a, 10); freopen("CON", "r", stdin); return 0;}
2、去除形如/**/的注释
#include <stdio.h>#include <stdlib.h>void fun(void){ int i; char a[11], flag; while ((i = scanf("%10[^\"/]%c", a, &flag)) != EOF) { printf("%s", a); if (i == 2) { if(flag == '"') { putchar('"'); while (scanf("%10[^\"]", a) > 0) { printf("%s", a); } scanf("%c", &flag); putchar('"'); } else if(flag == '/') { scanf("%c", &flag); while (scanf("%*[^*]%[*]", a) > 0) { scanf("%c", &flag); if (flag == '/') { break; } } } else { putchar(flag); } } }}
#include <stdio.h>#include <stdlib.h>char *squeeze(char s1[], const char s2[]){ char a[100]; sprintf(a, "%%[^%s]", s2);//以s2字符串过滤s1字符串 if (sscanf(s1, a, s1) == 0) { s1[0] = 0; } return s1;}int main(void){ char s1[10], s2[10]; freopen("hello.txt", "r", stdin); while (scanf("%s%s", s1, s2) != EOF) { printf("%s\n", squeeze(s1, s2)); } freopen("CON", "r", stdin); return 0;}
4、16进制字符串转化为数字
#include <stdio.h>#include <stdlib.h>void htoi(char str[], int *val){ sscanf(str, "%x", val);}int main(void){ char str[20]; int val; while (scanf("%s", str) != EOF) { htoi(str, &val); printf("%d\n", val); } return 0;}
。。。简单的正则式表达,威力无穷啊。。
- scanf家族 正则式
- scanf 家族
- scanf家族和printf家族
- scanf家族%*的妙用
- scanf 家族%*的妙用
- sscanf/scanf正则用法
- sscanf/scanf正则用法
- scanf中的正则表达式
- scanf正则表达式
- scanf的正则表达式
- scanf、sscanf中的正则表达式
- scanf中的正则表达式(ZZ)
- scanf、sscanf中的正则表达式
- scanf、sscanf中的正则表达式
- scanf()正则表达式的使用
- scanf、sscanf中的正则表达式
- scanf中运用正则表达式
- scanf、sscanf中的正则表达式
- STM32精确延时(非中断,非ST库函数)
- wireshark 插件开发
- VC、VS2005调试技巧
- Unity3D优化之Optimizing Script Performance
- Struts2 参数 表单 提交 对象 POJO 方法大全
- scanf家族 正则式
- 使用Java的文档注释
- C++ 与 Java的成员函数对比
- Linux 中的IPC(二)-----内核线程(Kthread)
- C#多线程异步访问winform中控件
- 最简单方法搞定 VirtualBox 虚拟机共享文件问题
- Android Notification 显示后消失
- 备忘日志【三】
- 第九周任务一