Access Strings

برای دسترسی به کاراکترهای موجود در یک رشته (std::string) در C++ چند روش ساده و ایمن وجود دارد.

🟠 C++ Access Strings

🔹 1. استفاده از اندیس ([])

مثل آرایه‌ها می‌توانید با اندیس صفرمبتنی (0-based) به هر کاراکتر برسید:

#include <iostream> #include <string> using namespace std; int main() { string txt = "Hello"; cout << txt[0]; // H cout << txt[1]; // e return 0; }
  • اندیس 0 اولین کاراکتر را برمی‌گرداند.

  • اگر اندیس خارج از محدوده باشد، رفتار تعریف‌نشده (Undefined) است.

🔹 2. متد ()at.

روش ایمن‌تر که در صورت خارج بودن اندیس از محدوده خطای exception می‌دهد:

string txt = "World"; cout << txt.at(0); // W cout << txt.at(4); // d

اگر اندیس نامعتبر باشد، std::out_of_range پرتاب می‌شود.

🔹 3. دسترسی و تغییر کاراکتر

کاراکترها قابل تغییر هستند:

string txt = "Hello"; txt[0] = 'J'; cout << txt; // Jello

یا:

txt.at(1) = 'a'; cout << txt; // Hallo

🔹 4. گرفتن اولین و آخرین کاراکتر

متدهای کمکی:

string txt = "C++"; cout << txt.front(); // 'C' cout << txt.back(); // '+'

✅ نکات مهم

  • نوع کاراکتر char است و می‌توانید با آن مثل عدد (کد ASCII) هم کار کنید.

  • همیشه قبل از دسترسی به اندیس خاص، با ()txt.size یا ()txt.length مطمئن شوید طول رشته کافی است.

  • برای کاراکترهای یونیکد چندبایتی (UTF-8) ممکن است هر حرف بیش از یک بایت داشته باشد؛ این روش بر اساس بایت کار می‌کند.

خلاصهٔ روش‌ها

روشویژگی
txt[i]سریع ولی بدون بررسی محدوده
txt.at(i)ایمن، با exception
()frontاولین کاراکتر
()backآخرین کاراکتر

این روش‌ها به شما امکان می‌دهند هم به کاراکترها دسترسی پیدا کنید و هم در صورت نیاز آنها را تغییر دهید.