sscanf()程序示例
sscanf()程序示例
#include <iostream>
#include <cstdio>
using namespace std;
int main(int argc, char* argv[]){
char str[10];
char a = 'a';
for (int i = 0; i < 10; i++) str[i] = a++;
cout<<str;
//把源字符串"123456"拷贝到str的前6个字符,并且把str的第7个字符设为null字符,也就是\0
sscanf("123456", "%s", str);
cout<<str<<endl;
//只拷贝3个字符给str,然后把第4个字符设为null字符
sscanf("123456", "%3s", str);
cout<<str<<endl;
//%表示选择,%后面的是条件表示从a到z的任意字符,贪婪匹配
sscanf("asdfDsfd", "%[a-z]", str);
cout<<str<<endl;
//%表示选择,符号^表示逻辑非,贪婪匹配
sscanf("ASdfAsfd", "%[^a-z]", str);
cout<<str<<endl;
//不匹配则不修改str,即不添加'\0'
sscanf("asdfAsfd", "%[^a-z]", str);
cout<<str<<endl;
//
char str2[10] = "adfsdfsf";
sscanf("AAddaDd", "%[A-Z]%[a-z]", str, str2);
cout << str << "-" << str2 << endl;
//%*表示不将匹配结果读入参数,匹配但不保存,起过滤作用
sscanf("AAddaDd", "%*[A-Z]%[a-z]", str, str2);
cout << str << "-" << str2 << endl;
sscanf("adf123413", "%*[^0-9]%[0-9]", str);
cout << str;
return 0;
}