📜  c++ clear char array - C++ (1)

📅  最后修改于: 2023-12-03 15:29:49.254000             🧑  作者: Mango

C++中清空字符数组

在C++中,字符数组是一组相邻存储的字符,在声明时可以指定大小,数组中的元素可以通过下标进行访问和修改。但是当我们使用字符数组的时候,有时候需要清空数组中的内容,以便我们重新使用它。本文将介绍如何在C++中清空字符数组。

1. 使用memset函数

memset函数可以将一段内存空间的值全部设置为指定的值,因此我们可以使用memset函数来清空字符数组。memset函数的定义如下:

void * memset ( void * ptr, int value, size_t num );

其中,ptr是需要清空的内存空间的指针,value是要设置的值,num是要设置的字节数。

下面是使用memset清空字符数组的示例代码:

#include <iostream>
#include <cstring>

using namespace std;

int main()
{
    char str[10] = "hello";
    cout << "Before clear: " << str << endl;

    memset(str, '\0', sizeof(str));

    cout << "After clear: " << str << endl;

    return 0;
}

输出结果:

Before clear: hello
After clear:
2. 使用循环清空数组

除了使用memset函数之外,我们还可以使用循环逐个清空数组中的元素。这种方法在数组比较小的情况下用起来比较方便,但是对于大数组来说效率较低。

下面是使用循环清空数组的示例代码:

#include <iostream>
#include <cstring>

using namespace std;

int main()
{
    char str[10] = "hello";
    cout << "Before clear: " << str << endl;

    for(int i=0; i<sizeof(str); i++)
    {
        str[i] = '\0';
    }

    cout << "After clear: " << str << endl;

    return 0;
}

输出结果:

Before clear: hello
After clear:
3. 使用赋值语句清空数组

赋值语句也可以清空数组中的元素。我们可以使用循环来逐个赋值为'\0',也可以使用数组名作为指针来一次性赋值。这种方法比循环逐个清空要快一些。

下面分别是使用循环和一次性赋值来清空数组的示例代码:

#include <iostream>
#include <cstring>

using namespace std;

int main()
{
    char str[10] = "hello";
    cout << "Before clear: " << str << endl;

    for(int i=0; i<sizeof(str); i++)
    {
        str[i] = '\0';
    }

    cout << "After clear 1: " << str << endl;

    char str2[10] = "world";
    cout << "Before clear: " << str2 << endl;

    memset(str2, '\0', sizeof(str2));

    cout << "After clear 2: " << str2 << endl;

    return 0;
}

输出结果:

Before clear: hello
After clear 1:
Before clear: world
After clear 2:
总结

本文介绍了在C++中清空字符数组的三种方法:使用memset函数、使用循环逐个清空、使用数组名作为指针来一次性赋值。其中使用memset函数是最常用的方法,因为它可以更快速地实现清空操作。