Cách đếm số kí tự trong xâu bằng code c++

0
4303

Bài toán: Nhập vào một xâu kí tự hãy đếm số kí tự trong xâu vừa nhập.

  • Input
  • Output

Nhưng trước khi bắt đầu đếm số kí tự trong xâu thì mình xin phép giới thiệu lại chuỗi trong c++.

Chuỗi kí tự trong c++

Chuỗi ký tự là một dãy gồm các ký tự hoặc một mảng các ký tự được kết thúc bằng ký tự ‘\0’ (còn được gọi là ký tự NULL trong bảng mã ASCII).

Chúng ta có thể khai báo bằng một trong ba cách sau:

  • Khai báo theo mảng
  • Khai báo theo con trỏ
  • Khai báo và gán giá trị

Khai báo theo mảng: 

Mình xin 5 phút quảng cáo nha =))

Cú pháp khai báo như sau: char Biến [ Độ_dài ] ;

Ví dụ: char s[50];

Khai báo theo con trỏ:

Cú pháp khai báo như sau: char *Biến ;

Ví dụ: char *s;

Khai báo và gán giá trị:

Cú pháp khai báo như sau: char Biến [] = "giá trị" ;

Ví dụ: char s = "hoc lap trinh";

Cách đếm số lượng kí tự trong xâu

Ý tưởng:

  • Ta sẽ dùng một vòng lặp duyệt lần lượt các kí tự trong xâu đến khi nào gặp kí tự ‘\0’ thì dừng lại.
  • Dùng một biến count để tính số lượng kí tự trong chuỗi.
  • Sau khi duyệt hết chuỗi thì count là số kí tự cần đếm.
  • Vì ta không biết chuỗi có bao nhiêu kí tự nên ta sẽ dùng vòng lặp while để xử lý.

Chương trình đếm số kí tự trong c++

Lưu ý: Nếu các bạn nhập dữ liệu từ bàn phím thì trước khi nhập các bạn phải tiến hành xóa bộ nhớ đệm để quá trình nhập chính xác hơn.

Các bạn cùng xem chương trình sau nhập dữ liệu từ bàn phím và đếm số lượng kí tự trong xâu

Tại sao lại 18 ? Vì trong quá trình nhập chúng ta đã sử dụng enter để kết thúc quá trình nhập. Nhưng trước khi kết thúc thì chương trình cũng lưu lại kí tự xuống hàng ( kí tự ‘\n’ ). Vì kí tự ‘\n’ khác kí tự ‘\0’ nên chương trình trên vẫn đếm.

Các bạn có thể thử lại chương trình này để kiểm nghiệm.

Ở đây mình chỉ in ra các kí tự của chuỗi vừa nhập, nhưng sao lại xuống hàng. Đó là vì kí tự cuối cùng là kí tự xuống hàng ( ‘\n’).

Vậy để chương trình trên chính xác hơn thì ta chỉ cần giảm giá trị của biến count lui một đơn vi.

Bài viết của mình đến đây là kết thúc. Cám ơn các bạn đã theo dõi !

avatar
  Subscribe  
Notify of