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

كيفية دمج قيم عددية مع سلسلة نصية في لغة برمجة ++C

مروان محمود3

السؤال

يأتيني رسالة الخطأ

 /garden.cpp:12:66: error: no match for 'operator+' (operand types are 'std::__cxx11::basic_string<char>' and 'int')

عندما أحاول تنفيذ الكود

string findTrees(int arr[],int n){
        string position;
        int a;
        if(arr[0]==arr[2]){
                a=abs(arr[3]-arr[1]);
                position=abs(arr[0]-a)+" " +to_string(arr[1])+' '+abs(arr[0]-a)+' '+
                arr[3];
            }

 

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

Recommended Posts

  • 1

سبب الخطأ أن الدالة abs تقوم بأخذ قيمة عددية وترجع القيمة المطلقة لها, والتي بدورها أيضا قيمة عددية كما أن المتغير في المصفوفة arr[3] يُعد أيضاً قيمة عددية, وال" " عبارة عن سلسلة نصية, ﻻ يمكنك جمع سلسلة نصية وقيمة عددية في الوقت ذاته, الحل أن تقوم بتحويل القيم العددية إلى سلسلة نصية عن طريق الدالة to_string كما عملت في عﻻمة الجمع رقم إثنين فتصبح الشفرة البرمجية خاصتك على الصيغة التالية

string findTrees(int arr[],int n){
        string position;
        int a;
        if(arr[0]==arr[2]){
                a=abs(arr[3]-arr[1]);
                position=to_string(abs(arr[0]-a))+" " +to_string(arr[1])+' '+to_string(abs(arr[0]-a))+' '+
                to_string(arr[3]);
            }

 

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

  • 1

في c++ علامة الاقتباس المفردة" ' " تدل على النوع محرف char، وعلامة الاقتباس المزدوجة " " " تدل على نص

الخطأ في المثال السابق هو عند محاولة جمع محرف و عدد int، بدل علامات الاقتباس للفراغات بعلامة مزدوجة كالتالي

string findTrees(int arr[],int n){
  string position;
  int a;
  if(arr[0]==arr[2]){
    a=abs(arr[3]-arr[1]);
    position=abs(arr[0]-a) + " " + to_string(arr[1]) + " " + abs(arr[0]-a) + " " + arr[3];
  }
 

 

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

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...