C++ chuỗi

Trong hướng dẫn này, bạn sẽ học cách xử lý các chuỗi trong C++. Bạn sẽ học cách khai báo chúng, khởi tạo chúng và sử dụng chúng cho các hoạt động nhập / xuất khác nhau.

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

  • Strings that are objects of string class (The Standard C++ Library string class)
  • C-strings (C-style Strings)

Chuỗi C

Trong lập trình C, tập hợp các ký tự được lưu trữ dưới dạng mảng. Điều này cũng được hỗ trợ trong lập trình C ++. Do đó nó được gọi là C-string.

C-string là mảng kiểu được charkết thúc bằng ký tự null, nghĩa là, \0(giá trị ASCII của ký tự null là 0).

Làm thế nào để xác định một chuỗi C?

char str[] = "C++";

Trong đoạn mã trên, strlà một chuỗi và nó chứa 4 ký tự.

Mặc dù, ” C++” có 3 ký tự, ký tự null sẽ tự động \0 được thêm vào cuối chuỗi.

Các cách khác để xác định một chuỗi

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

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

Giống như mảng, không nhất thiết phải sử dụng tất cả không gian được cấp cho chuỗi. Ví dụ:

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

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

Chương trình C ++ để hiển thị một chuỗi do người dùng nhập vào.

#include <iostream>
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: "<<str<<endl;

    return 0;
}

Đầ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ỉ hiển thị “Lập trình” thay vì “Lập trình là thú vị”.

Điều này là do toán tử trích xuất >> hoạt động như scanf()trong C và coi một dấu cách “” có ký tự kết thúc.

Ví dụ 2: Chuỗi C ++ để đọc một dòng văn bản

Chương trình C ++ để đọc và hiển thị toàn bộ dòng do người dùng nhập.

#include <iostream>
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ăn bản có khoảng trống, cin.getcó thể sử dụng hàm. Hàm này có hai đối số.

Đối số đầu tiên là tên của chuỗi (địa chỉ của phần tử đầu tiên của chuỗi) và đối số thứ hai là kích thước tối đa của mảng.

Trong chương trình trên, str là tên của chuỗi và 100là kích thước lớn nhất của mảng.

đối tượng chuỗi

Trong C ++, bạn cũng có thể tạo một đối tượng chuỗi để giữ chuỗi.

Không giống như sử dụng mảng char, các đối tượng chuỗi không có độ dài cố định và có thể được mở rộng theo yêu cầu của bạn.

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

#include <iostream>
using namespace std;

int main()
{
    // Declaring a string object
    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 hỏi từ người dùng.

Thay vì sử dụng cin>>hoặc cin.get()hàm, bạn có thể lấy dòng văn bản đã nhập bằng cách sử dụng getline().

getline()hàm nhận dòng đầu vào làm tham số đầu tiên cinvà strlà vị trí của dòng được lưu trữ.

Truyền chuỗi cho một hàm

Các chuỗi được truyền cho một hàm theo cách tương tự như các mảng được truyền cho một hàm .

#include <iostream>

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:  Really?
Entered string is: Programming is fun.
Entered char array is: Really?

Trong chương trình trên, hai chuỗi được yêu cầu nhập. Chúng được lưu trữ trong str và str1 tương ứng, trong đó str là một charmảng và str1 là một stringđối tượng.

Sau đó, chúng ta có hai hàm display()xuất chuỗi lên chuỗi.

Sự khác biệt duy nhất giữa hai hàm là tham số. Hàm đầu tiên display()nhận mảng char làm tham số, trong khi hàm thứ hai nhận chuỗi làm tham số.

Quá trình này được gọi là quá trình nạp chồng hàm. Tìm hiểu thêm về Nạp chồng hàm .









Gõ tìm kiếm nhanh...