Asp*_*pyn 14 c memory string char
我有一个字符串,
char* str = "HELLO"
Run Code Online (Sandbox Code Playgroud)
如果我想从中得到E那我该怎么做?
Rei*_*aka 23
char* str = "HELLO";
char c = str[1];
Run Code Online (Sandbox Code Playgroud)
请记住,C中的数组和字符串开始索引为0而不是1,所以"H"是str[0],"E"是str[1],第一个"L"是str[2],依此类推.
Gra*_*rks 13
你会这样做:
char c = str[1];
Run Code Online (Sandbox Code Playgroud)
甚至:
char c = "Hello"[1];
Run Code Online (Sandbox Code Playgroud)
编辑:更新以找到"E".
数组表示法和指针算术在 C/C++ 中可以互换使用(并非所有情况都如此,但当您到达那里时,您会自己找到这些情况)。因此,虽然str是一个指针,但您可以像使用数组一样使用它:
char char_E = str[1];
char char_L1 = str[2];
char char_O = str[4];
Run Code Online (Sandbox Code Playgroud)
...等等。您还可以做的是将指向字符的指针的值“加”1,str然后该字符将指向字符串中的第二个字符。然后你可以简单地做:
str = str + 1; // makes it point to 'E' now
char myChar = *str;
Run Code Online (Sandbox Code Playgroud)
我希望这有帮助。