sscanf()和spritf()的简单用法

来源:互联网 发布:美工图片软件 编辑:程序博客网 时间:2024/06/14 00:30

sscanf()和spritf()的用法有很多,这里只简单介绍类型之间的转换。

1.sscanf()函数

头文件 #include

 定义函数 int sscanf (const char *str,const char * format,........);

语法: int sscanf( string str, string fmt, mixed var1, mixed var2 ... );

整数 sscanf( 字符串 str, 字符串 fmt, 混合 var1, 混合 var2 ... );

函数说明 

sscanf()会将参数str的字符串根据参数format字符串来转换并格式化数据。格式转换形式请参考scanf()。转换后的结果存于对应的参数内。

1.将字符串化为十进制数

int main()
{
    char a[10] = {"255"};
    int b;
    sscanf(a,"%d",&b);
    printf("%d",b);
    return 0;
}

输出结果为 255,int b 就是 255


2.将字符串化为十六进制数

int main()
{
    char a[10] = {"ff"};
    int b;
    sscanf(a,"%x",&b);
    printf("%d",b);
    return 0;
}

输出结果为255 int b用十进制输出

%d                 转化为十进制整数

%i                  转化为十进制,八进制,十六进制整数
%o                  转化为八进制整数
%x                  转化为十六进制整数
%X                 同上
%c                  转化为一个字符
%s                  转化为一个字符串
%f/%lf                  转化为一个浮点数


1.sprintf用于格式化字符串

sprintf函数定义如下:

int sprintf (char * szBuffer, const char * szFormat, ...) ;
第一个参数是字符缓冲区;后面是一个格式字符串。Sprintf不是将格式化结果标准
输出,而是将其存入szBuffer。该函数返回该字符串的长度。在文字模式程序设计
中,


把变量打印到字符串中,从而获得数字的字符形式,这样不需要手工转换。
例如
 char c[100];
 int k=255;
 sprintf(c,"%d",k);
//c包含"255"

2.sprintf用于进制转换
可以方便地得到变量的十六进制和八进制字符序列,再稍加处理即可得到每一位的值。
 char c[100];
 int k=255;
 sprintf(c,"%x",k);
//c包含"ff" c[0]='f' c[1]='f'

3.sprintf用于连接字符串
方便地连接两个或者多个字符串
 char buf[1024];
 char a[100]="I ";
 char b[100]="love ";
 char c[100]="ACM."
 sprintf(buf,"%s%s%s",a,b,c);
 //buf 包含"I love ACM."