Thứ Năm, 2 tháng 12, 2021

Bài tập chuỗi trong C++

 

Bài tập chuỗi trong C++

Chuỗi (String) trong C/C++ là một mảng ký tự được kết thúc bởi \0 (ký tự null). Dưới đây là các bài tập C sử dụng hàm và không sử dụng hàm giúp bạn hiểu kiến thức cơ bản nhất về chuỗi. Các chương trình này xử lý các chuỗi dưới dạng như là một mảng các ký tự.

Bài tập chuỗi trong C++

Bài tập chuỗi trong C++

1. Bài 01

Đề bài: Viết chương trình C++ để in một chuỗi ra màn hình.

Dưới đây là chương trình C++ để giải bài in chuỗi trong C++:

#include <iostream>
using namespace std;

int main() {
   char str[] = "Hello World";

   cout << str;
   cout << endl;

   return 0;
}

Chạy chương trình C++ trên cho kết quả như sau:

2. Bài 2

Đề bài: Viết chương trình C++ để in một chuỗi được nhập từ bàn phím ra màn hình.

Dưới đây là chương trình C++ để giải bài in chuỗi trong C:

#include <iostream>
using namespace std;
  
int main() {
    char name[50];
    // doc chuoi tu ban phim
    cout << "Nhap chuoi: "; gets(name);
    // hien thi chuoi
    cout << "Chuoi ban nhap la: " << name << endl;
    return 0;
}

Chạy chương trình C++ trên cho kết quả như sau:

3. Bài 03

Đề bài: Viết chương trình C++ để tìm độ dài của một chuỗi.

Dưới đây là chương trình C++ để giải bài tập tìm độ dài của môt chuỗi:

#include <iostream>
using namespace std;
  
int main() {
   // khoi tao chuoi s1
   char s1[] = "eLib.VN";
   int i = 0;
      
   // su dung vong lap while tinh do dai cua chuoi
   // '\0' la ky tu NULL ket thuc cua mot chuoi
   while(s1[i] != '\0') {
      i++;
   }
     
   cout << "Do dai cua chuoi " << s1 << " la: " << i << endl;
     
   return 0;
}

Lời giải (sử dụng hàm)

Bạn có thể sử dụng hàm strlen(str) để tìm độ dài của một chuỗi trong C.

Dưới đây là chương trình C++ sử dụng hàm để giải bài tập tìm độ dài của môt chuỗi:

#include <iostream>
#include<string.h>
using namespace std;

int main() {
   char str[100];
   int len;
   
   cout << "\nNhap mot chuoi bat ky: ";
   gets(str);
   
   len = strlen(str);
   
   cout << "\nDo dai cua chuoi la: " << len << endl;
   return(0);
}
Chạy chương trình C++ trên cho kết quả như sau:

4. Bài 04

Đề bài: Viết chương trình C++ để sao chép chuỗi.

Cũng giống như sao chép mảng trong C, bạn sử dụng vòng lặp để duyệt qua từng ký tự trong chuỗi, sau đó sao chép vào trong chuỗi đích (chuỗi s2 chẳng hạn). Bạn cần lưu ý là chuỗi đích phải có độ dài bằng chuỗi ban đầu (chuỗi s1).

Lời giải (không sử dụng hàm)

Dưới đây là chương trình C++ để giải bài tập sao chép chuỗi trong C++:

#include <stdio.h>

int main() {
   char s1[] = "eLib.VN";    // khai bao mot chuoi
   char s2[10];                  // bien de luu chuoi sao chep

   int length = 0;

   // sao chep chuoi s1
   while(s1[length] != '\0') {
      s2[length] = s1[length];
      length++;
   }

   s2[length] = '\0';        // gia tri null, ket thuc chuoi

   printf("Chuoi s1 = %s \n", s1);
   printf("Chuoi s2 = %s \n", s2);

   return 0;
}

Lời giải (sử dụng hàm)

Bạn có thể sao chép nội dung từ chuỗi này sang chuỗi khác bởi sử dụng hàm strcpy(str2, str1) trong C. Hàm strcpy(str2, str1) nhận hai chuỗi làm tham số, trong đó: chuỗi str1 là chuỗi ban đầu, chuỗi str2 là chuỗi có nội dung sao chép từ chuỗi str1.

Dưới đây là chương trình C++ sử dụng hàm để giải bài tập sao chép chuỗi trong C:

#include<stdio.h>
#include<string.h>

int main() {
   char str1[100];
   char str2[100];
  
   printf("Nhap chuoi str1: ");
   gets(str1);
  
   strcpy(str2, str1);
   printf("\nChuoi sao chep la: %s", str2);
  
   return (0);
}

Chạy chương trình C++ trên cho kết quả như sau:

5. Bài 5

Đề bài: Viết chương trình C++ để tìm kiếm chuỗi con trong một chuỗi.

Yêu cầu bài tập là tìm kiếm một chuỗi con trong một chuỗi và đếm xem chuỗi con đó xuất hiện bao nhiêu lần.

Để giải bài tập C++ này, chúng ta cần sử dụng các vòng lặp cũng như cần nhớ kiểm tra điều kiện giá trị null (ký tự '\0').

Dưới đây là chương trình C++ để giải bài tập tìm kiếm chuỗi con trong một chuỗi trong C++:

#include <stdio.h>
#include <string.h>
  
int main() {
   char s1[] = "VietTuts hoc lap trinh online, hoc c, hoc c++, hoc java, ...";
   char s2[] = "hoc";
  
   int n = 0;
   int m = 0;
   int times = 0;
   // bien luu giu do dai cua chuoi can tim kiem
   int len = strlen(s2);
  
   while(s1[n] != '\0') {
  
      if(s1[n] == s2[m]) {    // neu ky tu dau tien la giong nhau
  
         // tiep tuc tim kiem
         while(s1[n] == s2[m]  && s1[n] !='\0') {
            n++;
            m++;
         }
  
         // Neu day ky tu nay co do dai bang chuoi tim kiem
         if(m == len && (s1[n] == ' ' || s1[n] == '\0')) {
  
            // Chuc mung ban da tim ra chuoi can tim
            times++;
         }
      } else {   // Neu ky tu dau tien khong giong nhau
         while(s1[n] != ' ') {    //bo qua, tiep tuc tim kiem tu tiep theo
            n++;
            if(s1[n] == '\0')
            break;
         }
      }
          
      n++;
      m=0;  // reset bien dem.
   }

   printf("Chuoi ban dau: %s", s1);
   if(times > 0) {
      printf("\nChuoi '%s' xuat hien %d lan\n", s2, times);
   }else {
      printf("\nChuoi '%s' khong xuat hien trong cau.\n", s2);
   }
  
   return 0;
}

Chạy chương trình C++ trên cho kết quả như sau:

Trên đây là một số bài tập tiêu biểu về chuỗi trong C++ mà eLib tổng hợp được. Hy vọng sẽ giúp bạn đọc củng cố lại kiến thức về chuỗi và vận dụng chúng vào những project lớn hơn. Chúc các bạn thành công.

Thứ Bảy, 20 tháng 11, 2021

Lập trình C++ BASIC - Bài tập thực hành vòng lặp

 

25 Bài tập lập vòng lặp C++ có lời giải chi tiết

Vòng lặp là một khái niệm cơ bản của ngôn ngữ lập trình và được sử dụng rất nhiều trong các giải thuật. Ngoài việc nắm vững lý thuyết, bạn cũng cần luyện tập thường xuyên để nắm vững kiến thức và thuần thục cách sử dụng vòng lặp. Bài viết dưới đây sẽ tổng hợp cho bạn 25 bài tập vòng lặp C++ có lời giải đầy đủ và chi tiết.

25 bài tập vòng lặp C++ có lời giải

25 bài tập vòng lặp C++ có lời giải

Bạn có thể tải các ứng công cụ lập trình như Dev-C++Sublime Text 3 trên các máy tính, laptop chạy hệ điều hành WindowsMacOS để thực hành bài tập.

I. Đề 1 - Đề 5

Đề 1

Viết chương trình in các số từ 1 đến 1000 theo thứ tự tăng dần.

Đề 1

Đề 1

answer Đáp án: Đề 1

Đề 2

Viết chương trình in các số từ 1 đến 1000 theo thứ tự giảm dần.

Đề 2

Đề 2

answer Đáp án: Đề 2

Đề 3

Viết chương trình in bảng số từ 1 đến 200.

Đề 3

Đề 3

answer Đáp án: Đề 3

Đề 4

Viết chương trình nhập một số nguyên, tìm bội số của số đó với các số từ 1 đến 20, sau đó in kết quả ra màn hình. 

Đề 4

Đề 4

answer Đáp án: Đề 4

Đề 5

Viết chương trình in bảng cửu chương rút gọn của các số từ 1 đến 100.

Đề 5

Đề 5

answer Đáp án: Đề 5

II. Đề 6 - Đề 10

Đề 6

Nhập số nguyên n bất kỳ. Viết chương trình in các số chẵn từ 1 đến n.

Đề 6

Đề 6

answer Đáp án: Đề 6

Đề 7

Nhập số nguyên n bất kỳ. Viết chương trình in các số lẻ từ 1 đến n.

Đề 7

Đề 7

answer Đáp án: Đề 7

Đề 8

Viết chương trình nhập một câu bất kỳ, đếm số từ và ký tự trong câu đó, và in kết quả ra màn hình.

Đề 8

Đề 8

answer Đáp án: Đề 8

Đề 9

Viết chương trình nhập một số nguyên và in kết quả ra màn hình dưới dạng số đảo ngược (về thứ tự) của số nguyên vừa nhập đó.

Đề 9

Đề 9

answer Đáp án: Đề 9

Đề 10

Nhập một số n nguyên dương bất kỳ, viết chương trình in các số nguyên tố từ 0 đến n bằng vòng lặp FOR.

Đề 10

Đề 10

answer Đáp án: Đề 10

III. Đề 11 - Đề 15

Đề 11

Nhập một số n nguyên dương bất kỳ, viết chương trình in các số nguyên tố từ 0 đến n bằng vòng lặp WHILE.

Đề 11

Đề 11

answer Đáp án: Đề 11

Đề 12

Nhập số nguyên dương n bất kỳ, viết chương trình in n phần tử đầu tiên của dãy Fibonacci.

Đề 12

Đề 12

answer Đáp án: Đề 12

Đề 13

Nhập số nguyên n bất kỳ, viết chương trình in các phần tử đầu tiên của dãy Fibonacci từ 0 đến n.

Đề 13

Đề 13

answer Đáp án: Đề 13

Đề 14

Nhập số nguyên dương x bất kỳ. Viết chương trình tính giai thừa của x.

Đề 14

Đề 14

answer Đáp án: Đề 14

Đề 15

Nhập số nguyên dương n bất kỳ. Viết chương trình vẽ tam giác "*" có chiều cao là n hàng.

Đề 15

Đề 15

answer Đáp án: Đề 15

IV. Đề 16 - Đề 20

Đề 16

Viết chương trình nhập n số dương. Chương trình sẽ kết thúc nếu một trong các số đó là số âm.

Đề 16

Đề 16

answer Đáp án: Đề 16

Đề 17

Nhập số nguyên dương n bất kỳ. Viết chương trình vẽ tam giác cân "*" rỗng có chiều cao là n hàng.

Đề 17

Đề 17

answer Đáp án: Đề 17

Đề 18

Viết chương trình tính kết quả biểu thức S= 1+1/23+1/33+...+1/n3 (làm tròn 5 chữ số thập phân).

Đề 18

Đề 18

answer Đáp án: Đề 18

Đề 19

Nhập 2 số nguyên x và y. Viết chương trình tính tổng bình phương các số từ x đến y.

Đề 19

Đề 19

answer Đáp án: Đề 19

Đề 20

Viết chương trình nhập vào 1 số nguyên n và in tất cả các số từ n đến -100. bắt nhập lại nếu người dùng nhập -1.

Đề 20

Đề 20

answer Đáp án: Đề 20

V. Đề 21 - Đề 25

Đề 21

Nhập một số nguyên dương n. Viết chương trình kiểm tra số n có phải là số hoàn hảo hay không?

Đề 21

Đề 21

b Số hoàn hảo là số có tổng ước số của nó (không tính nó) bằng chính nó. Ví dụ như Số 28 là số hoàn hảo vì ước chung lớn nhất của 28 (không tính số 28) gồm: 1; 2; 4; 7; 14.

answer Đáp án: Đề 21

Đề 22

Nhập x là số thực, y là số tự nhiên. Hãy tính xy.

Đề 22

Đề 22

answer Đáp án: Đề 22

Đề 23

Nhập một số nguyên dương n bất kỳ. Viết chương trình kiểm tra số n có phải là số nguyên tố không?

Đề 23

Đề 23

answer Đáp án: Đề 23

Đề 24

Nhập vào hai số nguyên dương a và b. Tìm tổng của tất cả các số lẻ và chẵn nằm giữa hai số đó.

Đề 24

Đề 24

answer Đáp án: Đề 24

Đề 25

Nhập số nguyên n. Tính giá trị biểu thức S= 1.2 + 2.3 + 3.4 + ... + n(n+1).

Đề 25

Đề 25

answer Đáp án: Đề 25

Bài viết trên đã tổng hợp cho bạn 25 bài tập vòng lặp C++ có lời giải đầy đủ và chi tiết. Hy vọng với những bài tập trên sẽ giúp bạn luyện tập thật chăm chỉ và hiệu quả. Chúc các bạn thành công!

Bài tập chuỗi trong C++

  Bài tập chuỗi trong C++   (7) 668 lượt xem Chuỗi (String) trong C/C++ là một mảng ký tự được kết thúc bởi \0 (ký tự null). Dưới đây là các...