Chi tiết bài học Chuỗi trong C++

Chuỗi trong C++

Trong bài này, bạn sẽ học cách thao tác với chuỗi ( string ) trong C. Bạn sẽ được học cách khai báo, khởi tạo và sử dụng chúng cho nhiều thao tác vào ra khác nhau .

Chuỗi là một tập các ký tự. Có hai dạng chuỗi thường được sử dụng trong ngôn ngữ lập trình C++:

  • Các chuỗi là đối tượng người tiêu dùng của lớp string ( Lớp string của thư viện C + + chuẩn )

  • C-strings ( Chuỗi dạng C )

C-Strings

Trong lập trình C, tập hợp những ký tự được lưu thành dạng mảng, C + + cũng tương hỗ điều này. Vì vậy nó được gọi là những C-Strings .
C-strings là những mảng có dạng char được kết thúc bởi ký tự null, nghĩa là \ 0 ( giá trị ASCII của ký tự null là 0 ) .

Cách định nghĩa một C-string?

char str[] = "C++";

Trong đoạn mã trên, str là một chuỗi và nó có 4 ký tự .
Mặc dù, “ C + + ” chỉ có 3 ký tự, nhưng ký tự null \ 0 tự động hóa được thêm vào cuối của chuỗi .

Các cách khác để định nghĩa một chuỗi

char str[4] = "C++";
     
char str[] = {'C','+','+','\0'};

char str[4] = {'C','+','+','\0'};

Giống mảng, không thiết yếu phải sử dụng hàng loạt khoảng trống đã được cấp phép cho chuỗi này. Ví dụ :

char str[100] = "C++";

Ví dụ 1: Chuỗi C++ để đọc vào một từ

Chương trình C + + giúp in ra một chuỗi nhập vào bởi người dùng .

#include 
using namespace std;

int main()
{
    char str[100];

    cout << "Enter a string: ";
    cin >> str;
    cout << "You entered: " << str << endl;

    cout << "\nEnter another string: ";
    cin >> str;
    cout << "You entered: "<

Đầu ra

Enter a string : C + +
You entered : C + +

Enter another string : Programming is fun .

You entered : Programming

Lưu ý rằng, trong ví dụ thứ hai chỉ “ Programming ” là được in rat hay vì “ Programming is fun ” .
Đó là do tại toán tử lấy ra >> hoạt động giải trí giống như scanf ( ) trong C và sẽ coi dấu cách “ “ là một ký tự kết thúc .

Ví dụ 2: Chuỗi C++ để đọc vào một dòng chữ

Chương trình C + + giúp đọc vào và in ra một dòng chữ nhập vào bởi người dùng .

#include 
using namespace std;

int main()
{
    char str[100];
    cout << "Enter a string: ";
    cin.get(str, 100);

    cout << "You entered: " << str << endl;
    return 0;
}

Đầu ra

Enter a string: Programming is fun.

You entered : Programming is fun .

Để đọc vào chữ chứa khoảng chừng trắng, hàm cin.get cần được sử dụng. Hàm này có hai đối số .
Đối số tiên phong là tên của chuỗi ( địa chỉ của ký tự tiên phong của chuỗi ) và đối số thứ hai là kích cỡ tối đa của mảng .
Trong chương trình trên, str là tên của chuỗi và 100 là kích cỡ tối đa của mảng .

Đối tượng chuỗi (string object)

Trong C + +, bạn cũng hoàn toàn có thể tạo một đối tượng người dùng chuỗi để chứa những chuỗi .
Không giống như những mảng ký tự, những đối tượng người tiêu dùng chuỗi không có chiều dài cố định và thắt chặt, và hoàn toàn có thể được lan rộng ra tùy theo nhu yếu của bạn .

Ví dụ 3: Chuỗi C++ sử dụng kiểu dữ liệu dạng chuỗi

#include 
using namespace std;

int main()
{
    // Khai báo một đối tượng chuỗi
    string str;
    cout << "Enter a string: ";
    getline(cin, str);

    cout << "You entered: " << str << endl;
    return 0;
}

Đầu ra

Enter a string : Programming is fun .
You entered : Programming is fun .

Trong chương trình này, một chuỗi str được khai báo. Sau đó chuỗi được nhu yếu nhập vào từ người dùng .
Thay vì sử dụng cin >> hoặc hàm cin.get ( ), bạn hoàn toàn có thể đọc vào hàng loạt dòng chữ sử dụng getline ( ) .
Hàm getline ( ) nhận luồng nguồn vào là tham số tiên phong, ở đây là cin và str là nơi dòng chữ đó sẽ được lưu .

Truyền chuỗi vào hàm

Chuỗi được truyền vào hàm theo cách giống với việc truyền mảng vào hàm .

#include 

using namespace std;

void display(char *);
void display(string);

int main()
{
    string str1;
    char str[100];

    cout << "Enter a string: ";
    getline(cin, str1);

    cout << "Enter another string: ";
    cin.get(str, 100, '\n');

    display(str1);
    display(str);
    return 0;
}

void display(char s[])
{
    cout << "Entered char array is: " << s << endl;
}

void display(string s)
{
    cout << "Entered string is: " << s << endl;
}

Đầu ra

Enter a string : Programming is fun .
Enter another string : Programming is fun .
You entered char array : Programming is fun .

You entered string : Programming is fun .

Trong ví dụ trên, hai chuỗi được yêu cầu nhập vào từ người dùng. Chúng được lưu lần lượt trong str và str1, với str là một mảng char và str1 là một đối tượng string.

Sau đó tất cả chúng ta có hai hàm display ( ) giúp in ra chuỗi này trên chuỗi kia .
Sự độc lạ duy nhất giữa hai hàm đó là tham số. Hàm display ( ) tiên phong nhận tham số là một mảng char, trong khi hàm thứ hai nhận tham số là string .
Quá trình này được gọi là nạp chồng hàm .