头文件:#include <string.h>
memset() 函数用来将指定内存的前n个字节设置为特定的值,其原型为:
void * memset( void * ptr, int value, size_t num );
参数说明:
【函数说明】memset() 会将 ptr 所指的内存区域的前 num 个字节的值都设置为 value,然后返回指向 ptr 的指针。
memset() 可以将一段内存空间全部设置为特定的值,所以经常用来初始化字符数组。例如:
char str[20];
memset(str, '\0', sizeof(str)-1);
【返回值】返回指向 ptr 的指针。
注意:参数 value 虽声明为 int,但必须是 unsigned char,所以范围在0 到255 之间。
范例:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
// 不可以声明为 char *str = "https://www.cdsy.xyz";
char str[] = "https://www.cdsy.xyz";
memset(str, '-', 8);
puts(str);
system("pause");
return EXIT_SUCCESS;
}
执行结果:--------www.cdsy.xyz
注意:字符数组是可以被修改的,字符串是只读的,不能被修改,而 memset() 又必须修改 str,所以不能将 char str[] = "https://www.cdsy.xyz"; 声明为 char *str = "https://www.cdsy.xyz";,否则运行时会报错。