Как очистить массив символов? - PullRequest
66 голосов
/ 13 октября 2009

Иметь массив символов, таких как члены char [255]. Как я могу полностью очистить его без использования цикла?

char members[255];

Под «пустым» я подразумеваю, что если в нем хранятся некоторые значения, то это не должно быть. Например, если я делаю strcat, то старое значение не должно оставаться

members = "old value";

//empty it efficiently
strcat(members,"new"); // should return only new and not "old value new"

Ответы [ 13 ]

0 голосов
/ 30 октября 2017

Вы можете использовать следующую инструкцию:

strcpy_s(members, "");
0 голосов
/ 13 октября 2009

Отказ от ответственности: Обычно я не программирую на C, поэтому в моих примерах может быть любой синтаксис, но я надеюсь, что идеи, которые я пытаюсь выразить, ясны.

Если «опорожнение» означает «содержащий пустую строку», вы можете просто присвоить первому элементу массива ноль, что фактически сделает массив содержащим строку empry:

members[0] = 0;

Если «опорожнение» означает «освобождение используемой памяти», вы не должны использовать фиксированный массив символов. Скорее, вы должны определить указатель на char, а затем выполнить malloc / free (или присвоение строки) в зависимости от ситуации.

Пример использования только статических строк:

char* emptyString="";
char* members;

//Set string value
members = "old value";

//Empty string value
member = emptyString

//Will return just "new"
strcat(members,"new");
0 голосов
/ 13 октября 2009

Под "пустым массивом", если вы подразумеваете сброс до 0, тогда вы можете использовать bzero.

#include <strings.h>  
void bzero(void *s, size_t n);  

Если вы хотите заполнить массив другим символом по умолчанию, вы можете использовать функцию memset.

#include <string.h>  
void *memset(void *s, int c, size_t n);  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...