Как добавить элемент в массив строк в C? - PullRequest
3 голосов
/ 31 января 2011

Как добавить новый элемент в массив строк в C?

Ответы [ 4 ]

5 голосов
/ 31 января 2011

Если это строка, вы просто используете strcat() ( некоторые документы ). Просто будьте осторожны, что вы можете расширить только то, на что у вас есть память. Возможно, вам придется realloc(), как сказал другой плакат.

2 голосов
/ 31 января 2011

Строка в C состоит из массива символов.Чтобы строка была правильно напечатана с использованием вызовов printf, она должна заканчиваться символом NULL (\ 0).

Чтобы добавить новый элемент, т.е.символ до конца строки перемещается к символу NULL и заменяет его новым символом, а затем возвращает NULL после него.Это предполагает, что достаточно места уже доступно для нового персонажа.

char str[100];
char new_char = 'a';
int i = 0;
...
// adds new_char to existing string:

while(str[i] != '\0')
{
   ++i;
}
str[i++] = new_char;
str[i] = '\0';
1 голос
/ 31 января 2011

Если вы хотите расширить свой массив, вам нужно перераспределить память для него. Выезд realloc.

0 голосов
/ 31 января 2011

Это зависит от того, что вы называете массивом.

если вы статически выделили массив фиксированной длины, то вы можете просто скопировать данные в i-й элемент.

char foo[25][25];
strcpy(foo[1], "hello world"); /* "puts" hello world in the 2nd cell of the array */

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...