Avatar ·

Rust में स्ट्रिंग पर कैसे कैरेक्टर-दर-कैरेक्टर (Unicode कैरेक्टर्स के अनुसार) iterate करें?

सभी को नमस्ते! मैंने अभी Rust सीखना शुरू किया है और मुझे स्ट्रिंग पर iterate करने में समस्या आ रही है। दूसरी भाषाओं (जैसे Python या C++) में, मैं इस आदत में हूँ कि स्ट्रिंग कैरेक्टर्स की एक array होती है और मैं index से या for लूप से आसानी से चल सकता हूँ। लेकिन Rust में यह अधिक जटिल है। मैंने यह try किया: ```rust let s = "Привет, мир!"; for c in s { println!("{}", c); } ``` कंपाइलर error देता है: `error[E0277]: the trait bound \`str: Iterator\` is not satisfied`। मैं समझता हूँ कि `str` एक iterator नहीं है, लेकिन फिर हर कैरेक्टर कैसे प्राप्त करूँ? मैंने index से access भी try किया: ```rust let s = "Привет"; println!("{}", s[0]); // Error! ``` और फिर error: Rust में स्ट्रिंग्स को सीधे index नहीं किया जा सकता, क्योंकि Unicode कैरेक्टर्स अलग-अलग बाइट्स ले सकते हैं। अंत में मुझे चाहिए: एक स्ट्रिंग लें, हर कैरेक्टर (सिरिलिक, emoji और special characters सहित) पर iterate करें और उनमें से प्रत्येक के साथ कुछ करें। उदाहरण के लिए, कैरेक्टर्स की संख्या गिनें या सभी vowels को '*' से replace करें। कृपया बताएं कि सही तरीका क्या है।