Символ C из сочетания клавиш - PullRequest
1 голос
/ 18 июня 2010

В javascript я привык просто выбирать любой символ из строки, такой как «exm [2]», и он вернул бы мне третий символ в строке.В C есть способ сделать это или что-то без функции, которая требует буфера?

1 Ответ

6 голосов
/ 18 июня 2010

Поскольку в C "строки" - это просто символьные массивы, вы можете сделать то же самое и там:

char* foo = "Hello World";
printf("%c", foo[4]); // prints o

Более того, "строка" - это просто указатель, указывающий на первый элементмассива символов, заканчивающихся нулевым символом ('\ 0').Строковые функции просто повторяются, пока не найдут этот нулевой символ (именно поэтому им весело, когда он , а не ), и индексация в массив - это просто причудливый способ написания некоторой арифметики указателей:

foo[4]

превращается в

*(foo + 4)
...