2011-12-10 34 views

Trả lời

11

Bạn sẽ làm gì:

char c = str[1]; 

Hoặc thậm chí:

char c = "Hello"[1]; 

chỉnh sửa: cập nhật để tìm ra "E".

+2

Điều này nhận được "E"? – Thanatos

+1

không, nhưng tôi hiểu nó và có thể làm cho nó làm việc cho bản thân mình – Aspyn

+0

Vâng, các loại hạt, tôi hiểu sai. Tôi đã thay cho chữ "O". Vẫn câu trả lời vẫn được áp dụng. –

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

Hãy ghi nhớ rằng mảng và chuỗi trong C bắt đầu lập chỉ mục 0 chứ không phải là 1, vì vậy "H" là str[0], "E" là str[1], là người đầu tiên "L" là str[2] và vân vân.

4

Ký hiệu mảng và số học con trỏ có thể được sử dụng thay thế cho nhau trong C/C++ (điều này không đúng đối với TẤT CẢ các trường hợp nhưng theo thời gian bạn đến đó, bạn sẽ tự tìm thấy trường hợp). Vì vậy, mặc dù str là một con trỏ, bạn có thể sử dụng nó như thể nó là một mảng như sau:

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

... và vân vân. Những gì bạn cũng có thể làm là "thêm" 1 vào giá trị của con trỏ tới một ký tự str mà sau đó sẽ trỏ đến ký tự thứ hai trong chuỗi. Sau đó, bạn có thể chỉ cần thực hiện:

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

Tôi hy vọng điều này sẽ hữu ích.

0
#include <iostream> 
#include <string> 
using namespace std; 
int main() 
    {string a="HELLO";char b=a[1]; 
    cout<<b; 
return 0;} 
Các vấn đề liên quan