Как очистить массив символов в C?

Системный вызов Waitpid на C Программирование и разработка

Массивы символов используются для хранения нескольких символьных элементов в непрерывно выделенной памяти. В нескольких вопросах у нас есть необходимость очистить массив символов, но вы не можете очистить массив символов, установив для отдельных членов какое-то значение, указывающее, что они ничего не содержат. Итак, нам нужны какие-то другие методы для выполнения этой задачи. Давайте проверим несколько методов для выполнения этой задачи.

Методы очистки массива символов в C упомянуты ниже:

  1. Использование элемента NULL
  2. Использование strcpy для очистки строки
  3. Использование memset для очистки
  4. Очистка динамического массива символов с помощью бесплатного

1. Очистка строки в C с использованием (’/0′)

Элемент ’\0′ в строке или массиве символов используется для идентификации последнего элемента массива символов. Для пустого массива символов первым элементом является элемент ’\0′. Итак, мы можем использовать это свойство строки для очистки массива.

Пример:

С

// C Program to implement
// NULL element property
// to clear the array
#include <stdio.h>
 
int main()
{
    // declaring the array
    char arr[5] = { 'a', 'b', 'c', 'd', 'e' };
 
    printf("Before: ");
 
    for (int i = 0; arr[i] != NULL; i++)
        printf("%c ", arr[i]);
 
    printf("\n");
 
    // Clearing the array
    arr[0] = '\0';
 
    printf("After: ");
 
    for (int i = 0; arr[i] != NULL; i++)
        printf("%c ", arr[i]);
 
    return 0;
}

Вывод

Before: a b c d e 
After:

2. Использование strcpy для очистки строки

strcpy — это предопределенная функция, уже существующая в заголовочном файле строки. Функция strcpy помогает нам копировать элементы одного массива в другой.

Читайте также:  Как использовать модуль Pretty Print в Python

Синтаксис:

strcpy(first,second);

Здесь первый — это элемент, в который нам нужно скопировать элементы, а второй — массив, из которого мы копируем элементы.

Пример:

С

// C Program empty char array 
// Using strcpy to clear 
// the string
#include <stdio.h>
 
int main()
{
    // Creating char array
    char arr[5] = { 'a', 'b', 'c', 'd', 'e' };
 
    printf("Before: ");
 
    for (int i = 0; arr[i] != '\0'; i++)
        printf("%c ", arr[i]);
 
    printf("\n");
 
    // Copying elements of empty array in arr
    strcpy(arr, "");
 
    printf("After: ");
 
    for (int i = 0; arr[i] != NULL; i++)
        printf("%c ", arr[i]);
 
    return 0;
}

Вывод

Before: a b c d e 
After:

3. Использование memset для пустой строки

Он копирует один символ заданное количество раз в объект. Мы можем очистить массив символов в C, установив для всех элементов значение ’\0′. Таким образом, мы можем изменить каждый элемент индекса на «\ 0», поскольку первый элемент равен «\ 0», поэтому массив символов [] будет считаться пустым. Это работает, если массив не является динамическим.

Пример:

С

// C Program to empty char array
// using memset
#include <stdio.h>
 
int main()
{
 
      // character array
    char arr[5] = { 'a', 'b', 'c', 'd', 'e' };
 
    printf("Before: ");
 
    for (int i = 0; arr[i] != '\0'; i++)
        printf("%c ", arr[i]);
 
    printf("\n");
 
      // using memset
    memset(arr, '\0', sizeof(arr));
 
    printf("After: ");
 
    for (int i = 0; arr[i] != NULL; i++)
        printf("%c ", arr[i]);
 
    return 0;
}

Вывод

Before: a b c d e 
After:

4. Использование бесплатного пустого динамического массива символов

Если мы используем динамический массив символов, это означает, что мы выделяем пространство для массива, поэтому простой метод очистки — освободить выделенное пространство.

Пример:

С

// C program to empty char array using
// free and dynamic array
#include <stdio.h>
 
int main()
{
 
    char* arr;
 
    arr = (char*)malloc(5);
 
    arr[0] = 'a';
    arr[1] = 'b';
    arr[2] = 'c';
 
    printf("Before: ");
 
    for (int i = 0; arr[i] != '\0'; i++)
        printf("%c ", arr[i]);
 
    printf("\n");
 
    free(arr);
 
    printf("After: ");
 
    for (int i = 0; arr[i] != NULL; i++)
        printf("%c ", arr[i]);
 
    return 0;
}

Вывод

Before: a b c 
After:

Оцените статью
bestprogrammer.ru
Добавить комментарий