• 0
Amin0u

أخد الكلمات من ملف و وضعها في جدول (مساعدة)

سؤال

السلام عليكم 

 

ممكن طرق فتح كل الملفات تكست الموجودة في مجلد 

 

و أخد كل الكلمات الموجودة فيه و وضعها في  جدول

 

هذا المشكل الذي أواجهه كوني ليست لدي خبرة في السي قمت بعمله بالبايثون و الباسكال لكن السي لم أفلح

 

الجدول في السي لكلمات سيكون عبارة عن مصفوفة ؟؟

 

حيث الأسطر تضم الكلمات و الأعمدة تضم الحروف هل يمكن وضع فقط جدول واحد ؟

 

 

تم تعديل بواسطه Amin0u
-2

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

11 إجابة على هذا السؤال .

  • 0

تنبيه : لقد اخترت عنوان غير مناسب لموضوعك .. راجع الموضوع التالي :
كيف اختار عنوان المواضيع و كيف اعدل العنوان بعد التنبيه

2

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

شكرا أخي جاري التعديل

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أخي الكريم , لم أفهم أين السؤال ؟

هل تريد مصفوفة من بعدين

هذه إحدى الطرق

char table[10/*max number of words*/][10/*max number of letters in each word*/]={        {'h','e','l','l','o'},        {'m','o','s','t','y'},        {'o','m','a','r','!'},    };

يمكنك تعريف مصفوفة من بعدين ثم قراءة الكلمات , ووضع كل كلمة في سطر مباشرة دون الحاجة إلى تفصيل الحروف في الأعمدة ..

هكذا

char table[10/*max number of words*/][10/*max number of letters in each word*/]={        "hello",        "mosty",        "omar!",    };

بالتوفيق

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

شكرا أخي و هل يمكن وضعها في جدول ذات بعد واحد ؟

char words[3]=["amine","hello","world"]
تم تعديل بواسطه Amin0u
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

 و هل من طريقة لقرائة ملف حرف ب حرف حتى أخره ؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

نعم يمكن , إذا اعتبرنا أن السلسلة النصية هي كائن واحد وليس مصفوفة حروف من بعد واحد

هناك كائن std::string في ++C

يمكن أن تستخدمه كما يلي

std::string table[10/*max number of words*/]={    "hello",        "mosty",        "omar!"    };

ولا تنس أن تضع

#include<string>

مع المكاتب المستخدمة

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

 و هل من طريقة لقرائة ملف حرف ب حرف حتى أخره ؟

بالطبع , استخدم التابع fgetc يحتاج إلى وسيط handle الملف , ويعيد حرفاً واحداً

مثال :

    FILE*test=fopen("filename.txt","r");//read mode    while(!feof(test)){        putchar(//to print the character            fgetc(test)            );    }

بالتوفيق

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

حتى ترتاح من موضوع الحجم المحدود للمصفوفة , هناك كائن std::vector في ++C

يمكن أن يحوي std::string وبذلك يمكنك تمديد الجدول

std::vector<std::string> table;    table.push_back("hello");    table.push_back("mosty");    table.push_back("omar!");

بالتوفيق

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

لكن أنا أريد سي فقط بدون استعمال orient object

وشكرا على تفاعلك مع مشكلتي

تم تعديل بواسطه مصطفى 36a2
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

يمكنك عمل struct يحتوي على مصفوفة من بعد واحد

ثم عمل مصفوفة من هذا الـstruct

ولكن في النهاية لن تهرب من مسألة البعدين أبداً ..

 

مثلاً : يمكنك كتابة ما يلي

char* table[10/*max number of words*/]={        "hello",        "mosty",        "omar!",    };

ولكنها طريقة محدودة جداً , حيث عليك حجز مساحة لكل مؤشر , عن طريق malloc ثم إسناد الحروف إليه ,

أو أن تجعل المؤشر يشير إلى سلسلة تم حجزها مسبقاً ..

 

الخلاصة :

استخدم مصفوفة من بعدين ولا تخف

 

بالتوفيق

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

 شكرا جزيلا لك أخي الكريم

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .