sprintf()和sscanf ()

  

sprintf()函数:将格式化的数据写入字符串
格式:
int sprintf(字符 str,字符格式,[论点,……]);
返回值类型sprintf(要写入数据的字符串,格式,(变量............])

  外汇:

  

# include & lt; stdio.h>
# include & lt; math.h>//为了下文中的M_PI
int主要()
{
char str[20];//定义一个字符数组,长度为20
int=0;//定义一个int类型的,用来存储sprintf()的返回值
a=sprintf (str,“% d" M_PI);
将(str);//输出字符串str
printf (“% d \ n");//输出返回值
返回0;
}

  

结果为:

8

3.141593   

可以看出
【返回值】成功则返回参数str字符串长度,失败则返回1,错误原因存于errno中。

  

printf ();和sprintf ();比较而言,前者是将格式数据打印在屏幕上,后者是将格式数据打印在字符串中。
printf (“% s, % c % d", x, y, z);//将x, y, z已逗号隔开的形式打印在屏幕上。
sprintf (str,“% s, % c % d", x, y, z)//将x, y, z已逗号隔开的形式写入数组。
外汇:
# include & lt; stdio.h>
int主要()
{
char str [100],
字符x[15]=笆淙雂ata";
char y=' T ';
int z=100;
printf (“% s, % c % d", x, y, z);
sprintf (str,“% s, % c % d", x, y, z);
将(str);
返回0;
}

  
 <代码>结果为:
  输入数据,T, 100
  输入数据,100年T  
  

sscanf();函数从字符串读取格式化输入
格式:
int sscanf (const char str, const char 格式,…)
返回值类型sscanf(要读取内容的字符串,格式,.....)

  外汇:


# include & lt; stdio.h>
# include & lt; string.h>
int主要()
{
int,一天,一个;
char月[10],工作日[10],[100],
拷贝字符串(总,“2018年6月15日星期日“);
a=sscanf(总,“% s % s % d % d",工作日,,,,,年);//将总里面的数据从左之后取出来,并存储到相应类型的变量中
//变量使用的是地址,工作日和月使用的是字符数组首地址,日和年由于是int类型,所以需要加上取地址符
printf (“% d \ n",)//输出返回值
printf (“% s % s % d % d \ n",工作日,月,日,年);
返回0;
}

  

结果是:
4
2018年6月15日星期天

  

sscanf()与sprintf()类比scanf()与printf ()

sprintf()和sscanf ()