C 语言字符串清零函数308


在 C 语言中,可以使用 memset() 函数来清零一个字符串。该函数的作用是将指定内存区域中的字节全部设置为指定的值,对于字符串而言,通常使用 0(NUL 字符)来清零。

memset() 函数语法void *memset(void *str, int c, size_t n);

* str:指向要清零的字符串的指针。
* c:要设置的目标值,通常为 0。
* n:要清零的字节数。

使用 memset() 函数清零字符串以下示例演示如何使用 memset() 函数清零一个字符串:
#include
int main() {
char str[] = "Hello World";
memset(str, 0, strlen(str));
printf("清零后的字符串:%s", str);
return 0;
}

输出:
清零后的字符串:(空字符串)

注意事项* memset() 函数不会改变字符串的长度,但会覆盖其内容。
* 清零字符串后,字符串中的所有字符都将变为空字符('\0'),包括字符串结尾处原有的 NUL 字符。
* 如果 n 指定的字节数超过字符串的长度,memset() 函数只清零字符串中的字节,而不会影响字符串之后的内存内容。

替代函数在某些情况下,可以使用 bzero() 函数作为 memset() 的替代。bzero() 函数的语法与 memset() 相同,但它专门用于将内存区域清零。不过,需要注意的是,bzero() 函数在某些平台上已被弃用,建议优先使用 memset() 函数。

示例程序以下示例程序演示了如何使用 memset() 函数清零一个字符串数组中的所有字符串:
#include
int main() {
char strArray[][20] = {"Hello", "World", "C", "Language"};
int numStrings = sizeof(strArray) / sizeof(strArray[0]);
for (int i = 0; i < numStrings; i++) {
memset(strArray[i], 0, strlen(strArray[i]));
}
// 输出清零后的字符串数组
for (int i = 0; i < numStrings; i++) {
printf("清零后的字符串 %d:%s", i, strArray[i]);
}
return 0;
}

输出:
清零后的字符串 0:(空字符串)
清零后的字符串 1:(空字符串)
清零后的字符串 2:(空字符串)
清零后的字符串 3:(空字符串)

2025-02-14


上一篇:利用 `TCHAR` 在 C/C++ 中输出字符

下一篇:C 语言中避免输出多余