2010-06-17 47 views
1

在JavaScript中,我习惯于能够从像“exm [2]”这样的字符串中选择任何字符,并且它会返回给我字符串中的第三个字符。在C中有没有一种方法可以做到这一点或没有需要缓冲区的功能?来自字符串快捷键的C字符

回答

6

由于C“字符串”只是字符数组,你可以这样做在那里,太:

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

更重要的是,一个“串”只是一个指针指向的第一个元素以零个字符('\ 0')结尾的字符数组。字符串函数只是循环,直到他们找到空字符(这就是为什么他们有乐趣,当它有)和索引到一个数组是写一些指针运算的只是一种奇特的方式:

foo[4] 

变成

*(foo + 4) 
+0

我怎样才能得到我想要的1个字符而没有终止字节? – Jay 2010-06-17 23:55:07

+1

@Jay:你已经做到了。 *字符串*有空终止符。 *字符*不。 – Artelius 2010-06-17 23:56:39

+0

+1这就是答案。除了添加字符串索引从0开始,您不需要任何更多,因为我相信您知道。而且,如果你想深入研究它,[]只是一种指针参​​考的形式。 – Mawg 2010-06-17 23:56:54