Avatar ·

كيفية استبدال جميع تكرارات حرف في سلسلة نصية في C++؟ (std::string)

مرحباً بالجميع! لقد بدأت للتو في تعلم C++ وواجهت مشكلة: أحتاج إلى استبدال جميع المسافات في سلسلة نصية بشرطة سفلية. لنفترض أن لدينا السلسلة "Hello World from C++". أريد الحصول على "Hello_World_from_C++". أعرف أنه في C# توجد طريقة `.Replace()` التي تفعل ذلك بسطر واحد. في Python أيضاً يوجد `str.replace()`. لكن كيف أفعل ذلك في C++؟ أنا أستخدم `std::string`. حاولت كتابة حلقة لكن لم أنجح. هذا هو الكود الفاشل الخاص بي: ```cpp #include #include int main() { std::string str = "Hello World from C++"; for (size_t i = 0; i < str.length(); i++) { if (str[i] == ' ') { str[i] = '_'; } } std::cout << str << std::endl; return 0; } ``` هذا الكود يعمل، لكنه بدائي جداً. قيل لي إن هناك طرقاً أكثر صحة وكفاءة، خاصة إذا كانت السلسلة كبيرة أو إذا كنت بحاجة لاستبدال ليس حرفاً واحداً بل تسلسل أحرف (مثلاً، استبدال كل "abc" بـ "xyz").