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

استخدام المؤشرات لعكس قيمة سلسلة نصية في ++c

محمد عنيبة

السؤال

#include<iostream>  
using namespace std;
void printReversed(string str)
{
    int size;
    for (int i = 0; str[i] != '\0'; i++)size = i;
    cout << size;
    for ( int i = size; i >= 0; i--)
    {
        string a;
        cout << str[i]; 
    }
    cout << endl;
}
int main()
{
    string a; cin>>a;
    
    printReversed(a);
    return 0;
}

هذا برنامج يعكس الكلمة المدخلة مثلا mohammed تطبع demmahom, كيف أُنشئ برنامج يقوم بنفس الوظيفة باستخدام المؤشرات

تم التعديل في بواسطة Wael Aljamal
توضيح السؤال
رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

مرحبا،

يمكنك تحقيق ذلك (طباعة سلسلة نصية بطريقة معكوسة باستخدام المؤشرات) :

#include<iostream>
#include<string.h> // تضمين مكتبة للتعامل مع السلسل النصية 
  
using namespace std;
// الطباعة المعكوسة
void printReversed(char *c, int n) // استقبال عنوان بداية السلسلة و طولها
{
    char *cc = c + n; // تعريف مؤشر مساعد يدل على نهاية السلسلة
    while (cc >= c)   // طالما لم نصل لبداية السلسلة
    {
        cout << *cc << endl; // نطبع المحرف مكان المؤشر
      	c--; // تحريك المؤشر المساعد لبداية اللسلسة
    }
}
int main()
{
    char s[30];  // تعريف اللسلسة
    cin>> s;  // إدخالها 
    printReversed(s, strlen(s));  // استدعاء التابع ممرين له السلسلة و طولها 
  	//string.h من المكتبة المضمنة strlen تم استدعاء التابع 
    return 0;
}

بالتوفيق

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

  • 0
بتاريخ 5 ساعات قال Wael Aljamal:

مرحبا،

يمكنك تحقيق ذلك (طباعة سلسلة نصية بطريقة معكوسة باستخدام المؤشرات) :


#include<iostream>
#include<string.h> // تضمين مكتبة للتعامل مع السلسل النصية 
  
using namespace std;
// الطباعة المعكوسة
void printReversed(char *c, int n) // استقبال عنوان بداية السلسلة و طولها
{
    char *cc = c + n; // تعريف مؤشر مساعد يدل على نهاية السلسلة
    while (cc >= c)   // طالما لم نصل لبداية السلسلة
    {
        cout << *cc << endl; // نطبع المحرف مكان المؤشر
      	c--; // تحريك المؤشر المساعد لبداية اللسلسة
    }
}
int main()
{
    char s[30];  // تعريف اللسلسة
    cin>> s;  // إدخالها 
    printReversed(s, strlen(s));  // استدعاء التابع ممرين له السلسلة و طولها 
  	//string.h من المكتبة المضمنة strlen تم استدعاء التابع 
    return 0;
}

بالتوفيق

شكرا بس بالمناسبة يبدو أنك أخطأت خطأ مطبعي بسيط فهذه الحلقة حلقة لا نهائية والصحيح نغير --c ل--cc

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

  • 0
بتاريخ 15 دقائق مضت قال محمد عنيبة:

شكرا بس بالمناسبة يبدو أنك أخطأت خطأ مطبعي بسيط فهذه الحلقة حلقة لا نهائية والصحيح نغير --c ل--cc

تمام، ملاحظتك صحيحة.

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

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...