5. sprintf(格式化字符串复制)
相关函数 printf,sprintf
表头文件 #include<stdio.h>
定义函数 intsprintf( char *str, const char * format,……);
函数说明 sprintf()会根据参数format字符串来转换并格式化数据,然后将结果复制到参数str所指的字符串数组,直到出现字符串结束('\0')为止。关于参数format字符串的格式请参考printf()。
返回值 成功则返回参数str字符串长度,失败则返回-1,错误原因存于errno中。
附加说明 使用此函数得留意堆栈溢出,或改用snprintf()。
范例
[cpp]
#include<stdio.h>
main()
{
char * a = "This is string A!";
char buf[80];
sprintf(buf, ">>> %s<<<\n", a);
printf("%s", buf);
}
执行 >>>Thisis string A!<<<
6. sscanf(格式化字符串输入)
相关函数 scanf,fscanf
表头文件 #include<stdio.h>
定义函数 intsscanf (const char *str, const char * format,……);
函数说明 sscanf()会将参数str的字符串根据参数format字符串来转换并格式化数据。格式转换形式请参考scanf()。转换后的结果存于对应的参数内。
返回值 成功则返回参数数目,失败则返回-1,错误原因存于errno中。
范例
[cpp]
#include<stdio.h>
main()
{
int i;
unsigned int j;
char input[ ]="10 0x1b aaaaaaaa bbbbbbbb";
char s ;
sscanf(input,"%d %x %5[a-z] %*s %f",&i,&j,s,s);
printf("%d %d %s\n",i,j,s);
}