- C标准库
- C库 - 首页
- C库 - <assert.h>
- C库 - <complex.h>
- C库 - <ctype.h>
- C库 - <errno.h>
- C库 - <fenv.h>
- C库 - <float.h>
- C库 - <inttypes.h>
- C库 - <iso646.h>
- C库 - <limits.h>
- C库 - <locale.h>
- C库 - <math.h>
- C库 - <setjmp.h>
- C库 - <signal.h>
- C库 - <stdalign.h>
- C库 - <stdarg.h>
- C库 - <stdbool.h>
- C库 - <stddef.h>
- C库 - <stdio.h>
- C库 - <stdlib.h>
- C库 - <string.h>
- C库 - <tgmath.h>
- C库 - <time.h>
- C库 - <wctype.h>
C库 - memset() 函数
C库函数`memset()` 的类型为 void,它接受三个变量作为参数,将字符 c(一个无符号字符)复制到参数 str 指向的字符串的前 n 个字符。
此函数用于使用特定值填充连续的内存块。它还将字符的值转换为无符号字符,并将其复制到给定字符串指向的对象的前 n 个字符中的每一个。如果 n 大于字符串大小,则结果未定义。
语法
以下是C库函数`memset()` 的语法:
void *memset(void *str, int c, size_t n)
参数
此函数接受以下参数:
str - 这是指向要填充的内存块的指针。
c -
这是第二个参数,类型为整数,在用于填充内存块之前将其转换为无符号字符。n - 这是要设置为该值的字节数。
返回值
此函数返回指向内存区域 str 的指针。
示例 1
在这个例子中,我们使用 C 库函数 `memset()` 设置初始字符串,并使用 memset() 函数修改字符串内容。
#include <stdio.h> #include <string.h> int main () { char str[50]; strcpy(str, "Welcome to Tutorialspoint"); puts(str); memset(str, '#', 7); puts(str); return(0); }
输出
以上代码产生以下结果:
Welcome to Tutorialspoint ####### to Tutorialspoint
示例 2
下面的程序使用 memset() 初始化一个整数数组为零。
#include <stdio.h> #include <string.h> int main() { int arr[10]; memset(arr, 0, sizeof(arr)); printf("Array after memset(): "); for (int i = 0; i < 10; i++) { printf("%d ", arr[i]); } printf("\n"); return 0; }
输出
执行上述代码后,我们将得到以下结果:
Array after memset(): 0 0 0 0 0 0 0 0 0 0
示例 3
在这里,我们创建一个 C 程序,使用 memset() 初始化字符数组为特定字符 ('Z')。
#include <stdio.h> #include <string.h> int main() { char str[20]; memset(str, 'Z', 10); printf("String after memset(): %s\n", str); return 0; }
执行代码后,我们将得到以下结果:
String after memset(): ZZZZZZZZZZ
广告