Avatar ·

كيفية التكرار عبر سلسلة نصية حرفًا بحرف (حسب رموز Unicode) في Rust؟

```html مرحباً جميعاً! لقد بدأت للتو في تعلم Rust، وواجهت مشكلة في التكرار عبر سلسلة نصية. في لغات أخرى (مثل Python أو C++)، تعودت على أن السلسلة النصية هي مصفوفة من الأحرف، ويمكنني ببساطة المرور عبر الفهرس أو استخدام حلقة for. لكن في Rust الأمر أكثر تعقيداً. هذا ما جربته: ```rust let s = "Привет, мир!"; for c in s { println!("{}", c); } ``` المترجم يعطي خطأ: `error[E0277]: the trait bound \`str: Iterator\` is not satisfied`. أفهم أن `str` ليس مكرراً، لكن كيف يمكنني الحصول على كل حرف؟ كما جربت الوصول عبر الفهرس: ```rust let s = "Привет"; println!("{}", s[0]); // خطأ! ``` ومرة أخرى خطأ: لا يمكن فهرسة السلاسل النصية في Rust مباشرة، لأن أحرف Unicode قد تشغل عدداً مختلفاً من البايتات. في النهاية، ما أحتاجه هو: أخذ سلسلة نصية، والمرور على كل حرف (بما في ذلك السيريلية، الرموز التعبيرية، والأحرف الخاصة) والقيام بشيء مع كل منها. على سبيل المثال، حساب عدد الأحرف أو استبدال جميع الحروف المتحركة بـ '*'. ```

لا توجد إجابات بعد.

تسجيل الدخول لترك إجابة

المدونات