梓益C语言学习笔记之常用字符串操作(sscanf&strtok)
梓益C语言学习笔记之常用字符串操作(sscanf & strtok)
专注于为中小企业提供成都网站建设、成都做网站服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业海州免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了1000多家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
一、sscanf
int sscanf(const char *buf,const char *format, …); \\从buf指定的内存区域中读入信息
例:int a, b, c;
sscanf("2013:10:1", "%d:%d:%d", &a, &b, &c);
printf(“%d %d %d\n”,a,b,c);
sscanf()的正则表达式是从头向后顺序查找匹配字符,找不到就返回错误,如下面的几个例子:
char src[] = "abcdefABCD123@456EFGghi";//一个buf只对应一个%,%*可以用多次
sscanf(src, "%[A-Z]", buf);//buf=空,遇到A-Z以外的字符就停止,%表示选择,%后面的表示条件,条件s表示任意字符
sscanf(src, "%[^A-Z]", buf);//buf=abcdef,^表示取反,即遇到A-Z之间的字符就结束
sscanf(src, "%[^A]", buf);//buf=abcdef,从左向右获取除A以外的字符,直到A结果
sscanf(src, "%*[^A]", buf);//buf=空,*表示后面匹配的字符不保存([^A]本应该是abcdef,但因加了*所以没有了即过滤掉了)
sscanf(src, "%*[^A]%s", buf);//buf=ABCD123@456EFGghi,s表示获取字符串,虽然前面没有保存字符,但后面的字符可以获得并保存
sscanf(src, "%*[^A]%[^@]", buf);//buf=ABCD123,直到遇到A并包含A结束
sscanf(src, "%*[^A]A%[^@]", buf);//buf=BCD123,直到遇到A但不包含A结束,A为定界符
二、strtok
char *strtok(char *str, const char *delim);
#include
#include
int main()
{
char str1[]="adc*fvcv*!ebcy!hghbdfg*casdert";
char *str2="*!";
char *result[10];
int num=0,i;
result[num]=strtok(str1,str2);
while(result[num]!=NULL)
{
num++;
result[num]=strtok(NULL,str2);
}
for(i=0;i printf("result[%d]=%s\n",i,result[i]); return 0; }
本文题目:梓益C语言学习笔记之常用字符串操作(sscanf&strtok)
网页URL:http://scyanting.com/article/pdhhoj.html