我有一个字符串,
char* str = "HELLO"
如果我只想获取其中的 E
,我该怎么做?
char* str = "HELLO";
char c = str[1];
请记住,在C语言中,数组和字符串的索引从0开始而不是1,因此"H"是str [0]
,"E"是str [1]
,第一个"L"是str [2]
等等。
你可以这样做:
char c = str[1];
或者更甚:
char c = "Hello"[1];
编辑:已更新以找到“E”。
C
中尝试修改它是非法的(您不能执行 str[0] = "J"
,其中 str
指向一个字符串常量)。 - Paul在C/C++中,数组表示法和指针算术可以互换使用(这并非对于所有情况都成立,但在你掌握到那些情况之前,你会自己发现)。因此,尽管str
是一个指针,你可以像使用数组一样使用它:
char char_E = str[1];
char char_L1 = str[2];
char char_O = str[4];
...等等。您还可以将指向字符str
的指针的值“增加”1,然后该指针将指向字符串中的第二个字符。然后,您可以简单地执行:
str = str + 1; // makes it point to 'E' now
char myChar = *str;