认识sscanf函数

sscanf函数

sscanf函数基本知识

函数原型

int sscanf( const char *buffer, const char *format [, argument ] ... );

函数功能

将buffer中的数据按照format格式读取后存储在argument中,返回值表示为成功转换的的数据个数,如果在第一次转换之前候遇到文件结尾就返回EOF。

实例一

#include<stdio.h>
int main()
{
    char *buffer = "asdfg10112022";
    char *temp1[10];
    char *temp2[20];
    sscanf(buffer,"%[a-zA-Z]%[1-9]",temp1,temp2);
    printf("%s\n%s\n",temp1,temp2);
    printf("%d\n",sscanf(buffer,%[a-zA-Z]%[1-9]));
    return 0;
}

sscanf一般的用法

1. 常见用法。

charbuf[512];
sscanf("123456","%s",buf);//此处buf是数组名,它的意思是将123456以%s的形式存入buf中
printf("%s\n",buf);//123456

2. 取指定长度的字符串。如在下例中,取最大长度为4字节的字符串。

sscanf("123456","%4s",buf);
printf("%s\n",buf);//1234

3. 取到指定字符为止的字符串。如在下例中,取遇到空格为止字符串。

sscanf("123456abcd  edf","%[^ ]",buf);
printf("%s\n",buf);//123456abcd 

4. 取仅包含指定字符集的字符串。如在下例中,取仅包含1到9和小写字母的字符串。

sscanf("123456abcdedfBCDEF","%[1-9a-z]",buf);
printf("%s\n",buf);//123456abcded

5. 取到指定字符集为止的字符串。如在下例中,取遇到大写字母为止的字符串。

sscanf("123456abcdedfBCDEF","%[^A-Z]",buf);
printf("%s\n",buf);//sscanf("123456abcdedfBCDEF","%[^A-Z]",buf);
printf("%s\n",buf);

6、给定一个字符串iios/12DDWDFF@122,获取 / 和 @ 之间的字符串。

sscanf("iios/12DDWDFF@122","%*[^/]/%[^@]",buf);
printf("%s\n",buf);//12DDWDFF

7、给定一个字符串“hello, world”,仅保留world。

sscanf(“hello, world”,"%*s%s",buf);/%s遇空格停止,加*则是忽略第一个读到的字符串。
printf("%s\n",buf);//word
posted @ 2014-06-25 21:08  水墨沙场  阅读(226)  评论(0编辑  收藏  举报