رشته‌ها در C++

آشنایی با رشته‌ها در C++، کار با C-strings و کلاس string

رشته‌ها در C++

رشته‌ها (Strings) برای ذخیره و کار با متن استفاده می‌شوند. در C++ دو روش برای کار با رشته‌ها وجود دارد.

روش 1: C-strings (آرایه کاراکتری)

char str1[] = "Hello";
char str2[6] = {'H', 'e', 'l', 'l', 'o', '\0'};

روش 2: کلاس string

#include <string>
string str = "Hello";

مقایسه دو روش

ویژگیC-stringstring class
سادگیسادهساده
امکاناتمحدودغنی
ایمنیخطر سرریزایمن
حافظهثابتپویا
پیشنهادبرای سازگاریبرای استفاده جدید

کلاس string

تعریف و مقداردهی

string str1 = "Hello";
string str2("World");
string str3(5, 'a');  // "aaaaa"

اتصال رشته‌ها

string str1 = "Hello";
string str2 = "World";
string str3 = str1 + " " + str2;  // "Hello World"

طول رشته

string str = "Hello";
cout << str.length();  // 5
cout << str.size();   // 5

دسترسی به کاراکترها

string str = "Hello";
cout << str[0];  // 'H'
cout << str[4];  // 'o'

تغییر کاراکتر

string str = "Hello";
str[0] = 'h';  // "hello"

توابع مهم string

find (جستجو)

string str = "Hello World";
size_t pos = str.find("World");
if (pos != string::npos) {
    cout << "پیدا شد در موقعیت: " << pos;
}

substr (زیررشته)

string str = "Hello World";
string sub = str.substr(6, 5);  // "World"

replace (جایگزینی)

string str = "Hello World";
str.replace(6, 5, "C++");  // "Hello C++"

erase (حذف)

string str = "Hello World";
str.erase(5, 1);  // "HelloWorld"
str.erase(5);     // "Hello"

append (افزودن)

string str = "Hello";
str.append(" World");  // "Hello World"

compare (مقایسه)

string str1 = "Hello";
string str2 = "World";
if (str1.compare(str2) == 0) {
    cout << "برابر هستند";
}

ورودی و خروجی رشته

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

int main() {
    string name;
    
    cout << "نام خود را وارد کنید: ";
    getline(cin, name);  // دریافت کل خط
    
    cout << "سلام " << name << "!" << endl;
    
    return 0;
}

مثال‌های کاربردی

مثال 1: شمارش کلمات

string text = "Hello World C++";
int wordCount = 0;
bool inWord = false;

for (char c : text) {
    if (c == ' ') {
        inWord = false;
    } else if (!inWord) {
        wordCount++;
        inWord = true;
    }
}

cout << "تعداد کلمات: " << wordCount;  // 3

مثال 2: معکوس کردن رشته

string str = "Hello";
string reversed = "";

for (int i = str.length() - 1; i >= 0; i--) {
    reversed += str[i];
}

cout << reversed;  // "olleH"

بهترین شیوه‌ها

نکات مهم

این مبحث بخشی از دوره آموزش کامل C++ است.

ابزارهای مرتبط