• 0

كيف أغير حالة الأحرف في السلسلة النصية في C++ ؟

أريد أن أقوم بتغيير حالة الأحرف الكبيرة إلى أحرف صغيرة في السلسلة النصية باستخدام لغة السي بلس بلس فكيف أستطيع فعل ذلك ؟ وهل هنالك طريقة لمعرفة ذلك بدون حلقة التكرار ؟

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

هنالك العديد من الطرق لتحويل حالة الأحرف الكبير إلى أحرف صغيرة، لكن لن تستطيع التخلي عن تكرار أمر الاختبار على جميع الحروف، لأنه لا توجد أية طريقة أخرى لمعرفة حالة الحرف إذا كانت كبيرة أو صغيرة.
يمكنك استخدام هذه الطريقة لتحويل الأحرف الكبيرة إلى صغيرة:

#include <algorithm>
#include <string>

std::string data = "Abc";
std::transform(data.begin(), data.end(), data.begin(), ::tolower);

أو يمكنك استخدام هذه الطريقة البسيطة لتحويل حالة الأحرف:

#include <boost/algorithm/string.hpp>    

std::string str = "HELLO, WORLD!";
boost::algorithm::to_lower(str);

إذا لم ترد استخدام  tolower فيمكنك في هذه الحالة استخدام هذه الطريقة، لكن لا أنصحك باستخدامها لأن الأولى أفضل بكثير:

char easytolower(char in){
  if(in<='Z' && in>='A')
    return in-('Z'-'z');
  return in;
}

std::transform(data.begin(), data.end(), data.begin(), easytolower);

المصدر

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن