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

  • Post author:
  • Post category:其他


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.”



版权声明:本文为leonharetd原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。