رشتهها در 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-string | string 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"
بهترین شیوهها
- از کلاس string به جای C-string استفاده کنید
- از getline برای دریافت ورودی استفاده کنید
- از توابع عضو کلاس string استفاده کنید
- رشتهها را با + اتصال دهید
نکات مهم
- اندیس رشته از 0 شروع میشود
- رشتهها در C++ قابل تغییر هستند
- از string::npos برای بررسی پیدا نشدن استفاده کنید
- همیشه
<string>را include کنید
این مبحث بخشی از دوره آموزش کامل C++ است.