اذهب إلى المحتوى
  • 0

كيفية تحويل متغير من نوع  *char إلى std::string في لغة ++C؟

Mohssen A Mohssen

السؤال

أريد أن أستخدم النوع std::string لتخزين القيمة المرجعة من الدالة ()fget، لذلك أحتاج تحويل القيمة من نوع *char المرجعة من الدالة ()fget  إلى std::string

كيف أقوم بهذا الأمر في لغة ++C؟

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 1

يمكنك أن تقوم بإستخدام النوع std::string مباشرة، حيث يحتوي على دالة بانية تقوم بتحويل القيمة المدخله إليها إلى النوع std::string بشكل مباشر، كالتالي:
 

const char* s = "Hsoub";
std::string str(s);
std::cout << str;

تقوم هذه الدالة البانية بنسخ كل حرف من النص إلى المتغير الجديد str

لاحظ أن المتغير s لا يجب أن يكون نوع nullptr وإلا سيتم تنفيذ سلوكم غير معروف undefined behavior 

كما يمكنك أن تحدد حجم المتغير str أيضًا من خلال تمرير رقم صحيح (عدد الحروف) كمعامل ثاني، على النحو التالي:
 

const char* s = "Hello, World!";
std::string str(s, 5);
std::cout << str;	// Hello

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

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

const char* str = "Hsoub Academy";

int s_size = sizeof(str) / sizeof(char); // حجم المصفوفة أو عدد الحروف


string s = "";

for (int i = 0; i < s_size; i++) {
  if (str[i] /* condition */) {      // أي شرط
    s += str[i];
  }
}

return s;  // string 

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...