Tôi có một chuỗi,Làm cách nào để lấy ký tự thứ n của chuỗi?
char* str = "HELLO"
Nếu tôi muốn nhận được chỉ là E
từ đó thế nào tôi sẽ làm điều đó?
Tôi có một chuỗi,Làm cách nào để lấy ký tự thứ n của chuỗi?
char* str = "HELLO"
Nếu tôi muốn nhận được chỉ là E
từ đó thế nào tôi sẽ làm điều đó?
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".
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.
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.
#include <iostream>
#include <string>
using namespace std;
int main()
{string a="HELLO";char b=a[1];
cout<<b;
return 0;}
Điều này nhận được "E"? – Thanatos
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
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. –