Đếm số lượng từ em trong xâu kí tự được đọc từ bàn phím

Bài tập này chúng ta sẽ sử dụng các kiến thức từ ngôn ngữ lập trình C như: cách nhập xuất chuỗi cơ bản trong ngôn ngữ lập trình C và dùng vòng lặp for để duyệt các ký tự trong chuỗi trong ngôn ngữ lập trinh C.

Yêu cầu của bài tập đưa ra cho chúng ta là đếm số lần xuất hiện của ký tự trong chuỗi bằng ngôn ngữ lập trình C.

2. Lời giải

Để thực hiện bài toán này chúng ta cần có kiến thức cơ bản về ngôn ngữ lập trình C, các cách nhập xuất chuỗi cơ bản trong C và dùng vòng lặp for để duyệt các ký tự trong chuỗi trong ngôn ngữ lập trình C.

Các bước thực hiện yêu cầu của bài tập đảo ngược chuỗi bằng ngôn ngữ lập trình C như sau:

Bước 1: Trong hàm main khai báo biến char a[100] biến chứa ký thự ta sẽ nhập vào [tối đa 100 ký tự].

Bước 2: Nhập dữ liệu từ bàn phím gán vào biến a rồi in biến a ra màn hình.

Bước 3: Khai báo biến char x là ký tự muốn tìm và nhập dữ liệu từ bàn phím gán vào biến x, khai báo biến int dem = 0 dùng để đếm số lượng ký tự xuất hiện trong chuỗi.

Bước 4: Sau đó sử dụng vòng lặp for bắt đầu từ int i = 0, kết thúc khi i < strlen[a] và mỗi lần i tăng lên 1; trong vòng lặp ta dùng if với điều kiện a[i]==x nếu thỏa mãn ta tăng biến dem lên 1. Kết thúc lặp ta dùng if với điều kiện dem>0 thì x có trong chuỗi với số lần là dem, ngược lại x không có trong chuỗi.

Bước 5: Chạy chương trình.

Chương trình giải bài tập đếm số lần xuất hiện của ký tự trong chuỗi bằng ngôn ngữ lập trình C như sau:

#include #include int main[]{ char a[100];// khai bao chuoi a có toi da 100 ky tu printf["Nhap vao chuoi ky tu: "]; gets[a]; char x;//khai bao ky tu muon tim printf["Nhap vao ky tu muon tim:"]; scanf["%c",&x]; int dem=0;//khai bao bien dem for[int i=0; i0]{ printf["So lan xuat hien cua ky tu %c trong chuoi la: %d",x, dem]; }else{ printf["Ky tu %c khong co trong chuoi!",x]; } }

Ví dụ tôi nhập chuỗi: laptrinhtudau và ký tự muốn tìm là a.

Kết quả:

Nhap vao chuoi ky tu: laptrinhtudau Nhap vao ky tu muon tim:a

So lan xuat hien cua ky tu a trong chuoi la: 2

3. Tổng kết

Sau khi làm bài tập này các bạn cần phải hiểu và nắm được những kiến thức sau:

  • Cách nhập xuất chuỗi cơ bản trong ngôn ngữ lập trình C.
  • Cách sử dụng hàm strlen[] trong C.
  • Cách sử dụng vòng lặp để duyệt qua các phần tử của chuỗi.
  • Cách đếm số lần xuất hiện của ký tự trong chuỗi C.

  • lý thuyết
  • trắc nghiệm
  • hỏi đáp
  • bài tập sgk

viết chương trình nhập từ bàn phím 1 xâu kí tự S đếm số lượng kí tự B trong xâu S [ không phân biệt chữ hoa và chữ thường]

Các câu hỏi tương tự


  • Toán lớp 11
  • Ngữ văn lớp 11
  • Tiếng Anh lớp 11

ASCII - tên đầy đủ là American Standard Code for Information Interchange - là một bảng mã chuẩn trao đổi thông tin Hoa Kỳ, bao gồm các kí tự và mã của chúng dựa trên bảng chữ cái Latin được dùng trong tiếng Anh hiện đại. Bảng mã này bao gồm 256256256 kí tự được đánh số hiệu thập phân từ 000 tới 255,255,255, thường được dùng để hiển thị văn bản trong máy tính và các thiết bị thông tin khác. Các kí tự mà chúng ta sử dụng trong lập trình đều nằm trong bảng mã này. Để làm việc dễ dàng trên máy tính, mỗi kí tự đều được mã hóa bởi những bit nhị phân 0−10 - 101 và quy đổi ra giá trị thập phân tương ứng để người dùng dễ thao tác hơn. Ví dụ, kí tự A có số hiệu thập phân là 65,65,65, kí tự z có số hiệu là 122,...122,...122,...

Trong bảng mã ASCII có những kí tự in được và không in được. Trong chương này, chúng ta sẽ làm việc với các kí tự in được, nhiều nhất là các kí tự chữ cái và chữ số. Nếu muốn tìm hiểu kĩ hơn về bảng mã ASCII đầy đủ, bạn đọc có thể truy cập vào đường link sau: //vi.wikipedia.org/wiki/ASCII

2. Kí tự và chuỗi kí tự

Trong máy tính, thông tin được biểu diễn ở dạng số và dạng phi số. Chúng ta đã quá quen thuộc với thông tin dạng số, vậy còn dạng phi số? Đó là văn bản, hình ảnh, âm thanh,...Đối với lập trình thi đấu, thông tin dạng văn bản cũng xuất hiện thường xuyên không kém dạng số, và các ngôn ngữ lập trình đều cung cấp những kiểu dữ liệu để lưu trữ thông tin dạng văn bản. Có hai loại dữ liệu dạng văn bản thường gặp nhất là kiểu kí tự và kiểu chuỗi kí tự [nhiều kí tự ghép lại với nhau].

Đối với kiểu kí tự, chúng ta có kiểu dữ liệu char để biểu diễn, còn chuỗi kí tự thì có hai cách khác nhau:

  • Sử dụng một mảng gồm nhiều phần tử kiểu char.
  • Sử dụng lớp chuỗi đã được xây dựng sẵn trong C++. Cách này được ưa chuộng hơn vì thao tác dữ liệu tốt hơn.

II. Lớp trong C++

Thư viện chuẩn của C++ cung cấp cho chúng ta một lớp hỗ trợ việc lưu trữ các chuỗi kí tự [xâu kí tự] và rất nhiều các phương thức xử lý đi kèm. Bạn đọc có thể chưa hiểu khái niệm về lớp ngay lúc này, nhưng sẽ hiểu về nó khi học tới bài Cấu trúc và Lớp. Còn bây giờ, để cho dễ hiểu, có thể coi như một kiểu dữ liệu nhưng hỗ trợ người dùng xử lý dữ liệu luôn.

1. Khai báo và truy cập các phần tử chuỗi

Để khai báo một chuỗi sử dụng lớp , đầu tiên ta cần khai báo thư viện và không gian tên chứa nó bằng cú pháp:

#include using namespace std;

Sau đó, khai báo một chuỗi bằng cú pháp:

string {Tên_chuỗi};

Vẫn như thường lệ, {Tên_chuỗi} là một định danh do người dùng đặt ra, miễn là không trùng với từ khóa của hệ thống. Ta không cần khai báo độ dài của chuỗi, mà mỗi khi thêm một kí tự vào thì string sẽ tự động điều chỉnh độ dài của chuỗi cho vừa khớp với số lượng kí tự. Khi khai báo chuỗi, mặc định chuỗi đó sẽ là chuỗi rỗng [không có kí tự nào].

Các kí tự trong chuỗi sẽ được đánh số từ 000. Để truy cập một vị trí trong chuỗi [với điều kiện vị trí đó hiện đang có kí tự hoặc đã được khởi tạo], ta dùng cú pháp:

{Tên_chuỗi}[{Vị_trí}]

Khá giống với mảng đúng không nào! Sau khi truy cập, mỗi vị trí trong chuỗi có thể được thao tác giống như một kí tự và kết hợp với các câu lệnh cũng như toán tử. Ví dụ, gán một biến ccc bằng kí tự ở vị trí số 222 của chuỗi sss bằng cú pháp:

char c = s[2];

2. Cách nhập xuất một chuỗi

2.1. Nhập xuất các biến kiểu

Khi nhập xuất một biến chuỗi kí tự, ta có thể coi chuỗi đó như một biến đơn và sử dụng hai câu lệnh cin và cout để nhập xuất. Cú pháp như sau:

cin >> {Tên_biến_chuỗi}; // Nhập vào một biến chuỗi. cout > name; cout

Chủ Đề