Chuỗi là một phần quan trọng của lập trình. Chuỗi là mảng các kiểu ký tự. Trong các kỳ thi cạnh tranh như GATE, nó cũng là một chủ đề quan trọng. Vì vậy, hãy thảo luận về một số điểm chính về chuỗi và sau đó chúng ta sẽ tiến hành một số câu hỏi giúp bạn làm rõ khái niệm về chuỗi.
Chuỗi trong ngôn ngữ lập trình có thể được lưu trữ theo hai cách khác nhau. Chúng là sử dụng mảng ký tự (char str[size]) và sử dụng con trỏ trỏ đến chuỗi (char * ch = "Hello"). Có một số điều quan trọng liên quan đến việc sử dụng mảng ký tự và con trỏ chuỗi. Chúng là:
- Để tìm kích thước chuỗi, chúng ta cần truyền instance mảng ký tự của chuỗi cho phương thức sizeof, tức là sizeof(str).
- Kết thúc của một chuỗi được đánh dấu bằng ký tự null, tức là '\0'.
- Có một phương thức để tìm độ dài chuỗi gọi là strlen().
- Để sửa đổi chuỗi, tức là thay đổi các ký tự của chuỗi, mảng char được sử dụng, trong khi truy cập ký tự đơn lẻ của chuỗi không thể bằng con trỏ.
Hãy xem một số câu hỏi thực hành
Dự đoán đầu ra của
Ví dụ
char name[] = "TutorialsPoint"; char *ptr = name; cout<<++ptr;
Đầu ra
utorialsPoint
Giá trị con trỏ tăng một nên sẽ bắt đầu in từ chỉ số 1.
char name[] = "TutorialsPoint";
int length = strlen(name);
for(int i=length;i>1;i--)
printf("%c", name[i]);
Đầu ra
tniopslairot
In chuỗi đảo ngược bằng cách bắt đầu từ độ dài đến 1.
char c[] = "LearnProgrammingAtTutorialsPoint";
char *p =c;
printf("%s", p + c[1] - c[2]+1) ;
Đầu ra
ProgrammingAtTutorialsPoint
Ở đây chúng ta đã tạo một con trỏ đến chuỗi và tăng giá trị con trỏ bằng một chỉ số nào đó in ra phần còn lại của chuỗi.