c標準庫<string.h>
阿新 • • 發佈:2020-12-12
技術標籤:# C++
memset
理論
/*
* 功能:將s中當前位置後面的n個位元組用c替換
* memset 是對較大的陣列或結構體進行清零初始化的最快方法,因為它是直接對記憶體進行操作的。
* 引數:
* str -- 指向要填充的記憶體塊。
* c -- 要被設定的值。該值以 int 形式傳遞,但是函式在填充記憶體塊時是使用該值的無符號字元形式。
* n -- 要被設定為該值的字元數
* 返回值:
* 該值返回一個指向儲存區 str 的指標。
*/
void *memset(void *str, int c, size_t n)
使用
# include <stdio.h>
# include <string.h>
int main(void)
{
int i; //迴圈變數
char str[10];
char *p = str;
memset(str, 0, sizeof(str)); //只能寫sizeof(str), 不能寫sizeof(p)
for (i=0; i<10; ++i)
{
printf("%d\x20", str[i]);
}
printf("\n");
return 0;
}
根據memset函式的不同,輸出結果也不同,分為以下幾種情況:
0 0 0 0 -52 -52 -52 -52 -52 -52
memset(p, 0, sizeof(*p)); //*p表示的是一個字元變數, 只有一位元組
0 -52 -52 -52 -52 -52 -52 -52 -52 -52
memset(p, 0, sizeof(str));
0 0 0 0 0 0 0 0 0 0
memset(str, 0, sizeof(str));
0 0 0 0 0 0 0 0 0 0
http://c.biancheng.net/view/231.html
#include <stdio.h>
#include <string.h>
int main ()
{
char str[50];
strcpy(str,"This is string.h library function");
puts(str);
memset(str,'$',7);
puts(str);
return(0);
}