如何获取字符串的第n个字符?

时间:2011-12-10 03:47:32

标签: c string memory char

我有一个字符串,

char* str = "HELLO"

如果我想从E那里得到那个怎么办?

3 个答案:

答案 0 :(得分:23)

char* str = "HELLO";
char c = str[1];

请记住,C中的数组和字符串开始索引为0而不是1,因此“H”为str[0],“E”为str[1],第一个“L”为{{1等等。

答案 1 :(得分:13)

你会这样做:

char c = str[1];

甚至:

char c = "Hello"[1];

编辑:更新以找到" E"。

答案 2 :(得分:4)

数组符号和指针算法可以在C / C ++中互换使用(对于所有情况都不是这样,但是当你到达那里时,你会自己找到这些案例)。因此虽然str是一个指针,但您可以像使用它一样使用它:

char char_E = str[1];
char char_L1 = str[2];
char char_O = str[4];

......等等。您还可以做的是将“1”添加到指向字符str的指针的值,然后指向字符串中的第二个字符。然后你可以简单地做:

str = str + 1; // makes it point to 'E' now
char myChar =  *str;

我希望这会有所帮助。