C语言字符串处理之sscanf函数

版权声明:未经允许禁止转载。转载请联系我WX:yuyi5453。并且注明出处 https://blog.csdn.net/weixin_40532377/article/details/86515053

C语言中自带的sscanf函数拥有处理字符串的功能,可以减去手写字符串处理的过程。

1、取开头数字

	s="123abc";
	sscanf(s,"%d",&n);
	sscanf(s,"%s",s1);
	printf("n=%d,s1=%s\n",n,s1);
	
	sscanf(s,"%d%s",&n,s1);
	printf("n=%d,s1=%s\n",n,s1);


    //输出结果
    //n=123,s1=123abc
    //n=123,s1=abc

2、取指定长度的串

       格式:"%长度s"

    s="123456";
	sscanf(s,"%2s%4s",s1,s2);
	printf("s1=%s,n2=%s\n",s1,s2);
	
	//输出结果
	//s1=12,n2=3456

3、取某个字符,或某个字符集中的字符 为止

        格式:"%[^字符或字符集]"

    s="123abc/DEF";
    sscanf(s,"%[^/]%[^A-Z]",s1,s2);
    printf("s1=%s,s2=%s\n",s1,s2);	
	//输出结果   
    //s1=123abc,s2=/
	
    sscanf(s,"%[^/]",s1);
    sscanf(s,"%[^A-Z]",s2);
    printf("s1=%s,s2=%s\n",s1,s2);
    //输出结果
    //s1=123abc,s2=123abc/

4、取某个字符集内的所有字符

        格式:"%[字符集]"

	s="123ABCabc";
	sscanf(s,"%[0-9]%[A-Z]%[a-z]",s1,s2,s3);
	printf("s1=%s,s2=%s,s3=%s\n",s1,s2,s3);
	//输出结果
	//s1=123,s2=ABC,s3=abc

5、加*舍弃取到的串

      格式:"%*[格式可以为以上任意]

    s="1234abcd";
    sscanf(s,"%*[0-9]%[a-z]",s1);
    printf("s1=%s\n",s1);
    //输出结果
    //s1=abcd

6、跳过某些串或字符

       格式:"%[]要跳过的字符%[]"

    s="1234CC5678";
    sscanf(s,"%[0-9]CC%[0-9]",s1,s2);
    printf("s1=%s,s2=%s\n",s1,s2);
    //输出结果
    //s1=1234,s2=5678

7、取指定字符中间的字符串(3+5+6组合技)

        格式:"%*[^字符1]字符1%[^字符2]"

    s="123<qwer>123";
    sscanf(s,"%*[^<]<%[^>]",s1);
    printf("s1=%s\n",s1);
    //输出结果
    //s1=qwer 

8、当然你可以任意组合,合成更多组合技,比如如何提取网址,如何提取邮箱......

en,就是这样

猜你喜欢

转载自blog.csdn.net/weixin_40532377/article/details/86515053