Char символ в C - PullRequest
       2

Char символ в C

0 голосов
/ 27 декабря 2010

Я определяю функцию

void add(char *key, char *value) {
}

И у меня есть строка

char * message = "hello world"

Я хочу вызвать add ("hello", "world"), поэтому я пишу

add(message[0,4], message[6, 10]) 

Не работает, мне отказывают с "char *" и "char array", кто мне может объяснить?

Ответы [ 3 ]

2 голосов
/ 27 декабря 2010

Вы не можете вставить строку таким способом в C. Вот приличное, доступное описание того, как делать то, что вы хотите: http://www.eskimo.com/~scs/cclass/notes/sx8.html

1 голос
/ 27 декабря 2010

В C у вас нет диапазонов, как в Python.

Сначала вы должны создать два массива

char key[] = "Hello";
char value[] = "World";

затем вы передаете их своей функции:

add(key, value);

Если вы хотите скопировать часть сообщения, как вы просили, сначала определите достаточно большой буфер:

char buffer[100];
char buffer2[100];

затем вы копируете, используя функцию strncpy(), объявленную в заголовке string.h.

strcnpy(buffer, message, 5); // copy Hello
strcnpy(buffer2, message + 6, 5); // copy World
0 голосов
/ 27 декабря 2010

message[0,4] недопустимый синтаксис C.Вы, должно быть, путаете C с другим языком.

Если вы хотите сделать копии частей этой строки в других массивах, вы можете изучить выделение некоторого пространства и затем memcpy'ing в него.Вы не можете использовать strcpy, потому что первая часть не будет завершена нулем.

C не имеет много встроенных простых функций для работы со строками - вам нужно освободить место для строки, делайте то, что выхотите, и убедитесь, что он нулевой завершен все "вручную".

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