您的位置:首页 > 其它

标准IO库函数 ssanf和sprintf

2015-09-24 11:00 337 查看

->格式化输入 sscanf

int scanf(const char *format, …);

从标准输入读入信息

int fscanf(FILE *stream,const char *format, …);

从stream指向的文件中读入信息

int sscanf(const char *buf,const char *format, …);

从buf指定的内存区域中读入信息

格式化输入sscanf(例)

1、取指定长度的字符串

char buf[512] = "";

sscanf("123456", "%3s", buf);

printf("%s\n", buf);

结果为:123

2、取到指定字符为止的字符串

sscanf("123456 abcdedf", "%[^ ]", buf);

printf("%s\n", buf);

结果为:123456

3、取仅包含指定字符集的字符串

sscanf("123abcABC", "%[1-9a-z]", buf);

printf("%s\n", buf);

结果为:123abc

4、取到指定字符集为止的字符串

sscanf("123abcABC", "%[^A-Z]", buf);

printf("%s\n", buf);

结果为:123abc

5、取两个字符之间的字符串

sscanf("abc#def@ghi", "%*[^#]#%[^@]", buf);

printf("%s\n", buf);

结果为:def

6、仅保留字符串““hello, world”中的world

sscanf(“hello, world”, "%*s%s", buf);

printf("%s\n", buf);

结果为:world

7、分隔字符串2012:08:18

int a, b, c;

sscanf("2012:08:18", "%d:%d:%d", &a, &b, &c);

8、分隔字符串2012:08:18 -2012:08:18

char buf1[100] = "", buf2[100] = "";

sscanf(“2010:08:18 -2012:08:18”,"%s -%s", buf1, buf2);

sscanf(“2010:08:18 -2012:08:18”,"%[0-9:] -%[0-9:]", buf1, buf2);

二>格式化输出  sprintf

int printf(const char *format, …);

输出到标准输出

int fprintf(FILE *stream,const char *format, …);

输出到文件

int sprintf(char *buf, const char *format, …);

int snprintf(char *buf, size_t n,const char *format, …);

输出到buf指定的内存区域。

注意:

sprintf函数没有指定写入的字符数,可能会造成由buf指向的内存区域溢出。标准I/O库函数

-------------------------------------------------------sscanf----------------------------------------------------------------------------------------------------------------------------------------------------------------------

#include<stdio.h>

#include<string.h>

#include<stdlib.h>

int main()

{

    char buf[100]="/mnt/ramdisk/172.0.0.1_19700101022912028_无_无_030_1_0_0.jpg";

    char array[5];

    

    //取buf中的 030

    sscanf(buf,"%*[^_ ]_%*[^_ ]_%*[^_ ]_%*[^_ ]_%[^_ ]",array);// %*[^_ ] _  跳过 _  不要_       %[^_ ] 取到_

    sscanf(buf,"%*[^_ ]_%*[^_ ]_%*[^_ ]_%*[^_ ]_%3s",array);//  %3s 取3个字符

    

    

    printf("******%s\n",array);

    

    return 0;

    

    

    

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: