memset sprintf

memset:
void main( void )
{
   char buffer[] = "This is a test of the memset function";

   printf( "Before: %s\n", buffer );
   memset( buffer, '*', 4 );
   printf( "After:  %s\n", buffer );
}

Output

Before: This is a test of the memset function
After:  **** is a test of the memset function

在上面的例子中,字符数组buffer 的前四个字符被替换为‘*’,可见memset函数的做表面作用就是字符替换。

有一个比较好的功能描述:将指定的内存块中的每个字节的内容设置成指定的ACSII字符

memset 最常见的功能就是为新申请的内存做初始化,

比如在C++中:

char  buff[100];

memset(buff,0,sizeof(buff));  

或者 memset(buff,'/0',100) 

或者 memset(buff,' ',sizeof(char)*100)




sprintf

/*例子*/
#include//某个头文件
intmain()/*主函数“整数”类型*/
{
charbuffer[50];/*“字符”类型的数组,下面共有50个元素。*/
intn,a=5,b=3;/*三个变量都为“整数”类型,intn中间要有空格*/
n=sprintf(buffer,"%dplus%dis%d",a,b,a+b);/*赋予数值*/
printf("[%s]isastring%dcharslong\n",buffer,n);/*“格式输出”*/

return0;/*“返回零”
也就是程序正常退出*/
}







你可能感兴趣的:(C++)