قراءة سلسلة في لغة البرمجة ج هي واحدة من العمليات الرئيسية عند العمل مع البيانات النصية. تتيح لك القراءة الصحيحة ومعالجة السلاسل إنشاء برامج أكثر كفاءة وموثوقية. في هذه المقالة ، سوف ننظر في عدة طرق لقراءة سلسلة في اللغة ج ومناقشة ميزاتها.
واحدة من الطرق الأكثر شيوعا لقراءة سلسلة في ج هو استخدام وظيفة فجيتس (). تتيح لك هذه الوظيفة قراءة سلسلة من مصدر بيانات معين ، على سبيل المثال ، من ملف أو إدخال قياسي. يستغرق ثلاث معلمات: مؤشر إلى المخزن المؤقت حيث سيتم وضع سلسلة القراءة وحجم المخزن المؤقت ومؤشر إلى مصدر البيانات. وظيفة فجيتس() يقرأ سلسلة تصل إلى حرف السطر الأول أو حتى يتم الوصول إلى الحد الأقصى لحجم المخزن المؤقت المحدد.
طريقة أخرى لقراءة سلسلة في ج هو استخدام وظيفة فسكانف (). تتيح لك هذه الوظيفة قراءة سلسلة وفقا للتنسيق المحدد في سلسلة التنسيق. تتضمن معلمات الدالة فسكانف () مؤشر إلى مصدر البيانات وعنوان المخزن المؤقت وحجم المخزن المؤقت وسلسلة التنسيق. تقوم الدالة فسكانف() بقراءة سلسلة من مصدر البيانات حتى تصل إلى حرف مسافة أو سطر جديد أو الحد الأقصى لحجم المخزن المؤقت المحدد.
من المهم أن نلاحظ أنه عند استخدام وظائف فجيتس() و فسكانف () ، فمن الضروري للتحقق من القيمة التي تم إرجاعها من قبلهم للتأكد من قراءة السلسلة بنجاح. إذا كانت قيمة الإرجاع فارغة أو إوف ، فهذا يعني أن خطأ حدث عند قراءة السلسلة.
- عملية قراءة سلسلة في لغة البرمجة ج
- أ) استخدام وظيفة المسح الضوئي ()
- باستخدام وظيفة يحصل ()
- الفرق بين المسح الضوئي()ويحصل ()
- وظائف أ) ميزات استخدام وظيفة المسح الضوئي ()
- سؤال وجواب
عملية قراءة سلسلة في لغة البرمجة ج
ج هي واحدة من لغات البرمجة الأكثر شعبية وتوفر للمطورين مع أدوات قوية للعمل مع النص. قراءة سلسلة من إدخال المستخدم أو من ملف هي واحدة من العمليات المتكررة التي يتم تنفيذها في البرمجة.
لقراءة سلسلة في ج ، يمكنك استخدام العديد من الوظائف الخاصة:
- المسح الضوئي: تستخدم هذه الوظيفة لقراءة البيانات من الإدخال والإدخال المنسق. لقراءة السلسلة ، استخدم محدد ٪.
- يحصل: تقرأ هذه الوظيفة سلسلة من لوحة المفاتيح وتخزنها في صفيف الأحرف المحدد.
- فجيتس: تقرأ هذه الوظيفة العدد المحدد من الأحرف من الملف المحدد وتخزنها في صفيف الأحرف المحدد.
هنا مثال على استخدام وظيفة المسح الضوئي لقراءة سلسلة:
# تشمل
كثافة العمليات الرئيسية () {
شارع شار [100];
برينتف ("أدخل السلسلة:");
سكانف ("٪ق " ، شارع);
برينتف ("لقد دخلت: ٪ ق" ، شارع);
العودة 0;
}
في هذا المثال ، بعد عرض الرسالة " أدخل السطر: "،سيقوم البرنامج قراءة سلسلة دخلت من قبل المستخدم وحفظه في مجموعة من الأحرف شارع. ثم سيعرض البرنامج السطر الذي تم إدخاله.
عند استخدام وظيفة جيتس ، من المهم ملاحظة أنه لا يتحقق من حدود المصفوفة التي يتم تخزين السلسلة فيها. يمكن أن يؤدي هذا إلى تجاوز سعة المخزن المؤقت وتلف البيانات ، أو يتسبب في تعطل البرنامج. ولذلك ، فإن وظيفة فجيتس هو الأفضل ، لأنه يسمح لك لتحديد الحد الأقصى لعدد الأحرف التي يمكن قراءتها.
على سبيل المثال:
# تشمل
كثافة العمليات الرئيسية () {
شارع شار [100];
برينتف ("أدخل السلسلة:");
فجيتس (ستر ، سيزوف (ستر) ، ستدين);
برينتف ("لقد دخلت: ٪ ق " ، شارع);
العودة 0;
}
في هذا المثال ، يتم استخدام وظيفة فجيتس لقراءة سلسلة مع حد 100 حرف. سيتم قراءة السلسلة من إدخال المستخدم وتخزينها في صفيف الأحرف ستر. ثم سيعرض البرنامج السطر الذي تم إدخاله.
قراءة سلسلة بشكل صحيح في لغة البرمجة ج مهارة هامة التي يجب أن يتقن مبرمج. باستخدام الوظائف المناسبة واتباع مبدأ البرمجة الآمنة ، ستتمكن من قراءة السلاسل بأمان وكفاءة.
أ) استخدام وظيفة المسح الضوئي ()
وظيفة سكانف () هي واحدة من الطرق لقراءة سلسلة في لغة البرمجة ج. يسمح لك بإدخال البيانات من لوحة المفاتيح وحفظها في المتغيرات.
من أجل استخدام وظيفة سكانف () ، تحتاج إلى توصيل ملف رأس ستديو.h.
بناء جملة وظيفة المسح الضوئي () كما يلي:
كثافة العمليات المسح الضوئي (كونست شار * شكل,...);
المعلمة الرئيسية للوظيفة هي التنسيق ، مما يشير إلى تنسيق بيانات الإدخال. تمثل هذه المعلمة سلسلة من الأحرف التي قد تحتوي على محددات التنسيق.
تتضمن محددات التنسيق التي يمكن استخدامها في وظيفة المسح الضوئي () ما يلي:
- ٪ د-لإدخال الأعداد الصحيحة;
- ٪ و-لإدخال أرقام الفاصلة العائمة;
- ٪ ق-لإدخال الخطوط;
- ٪ ج-لإدخال الأحرف;
- ٪ س-لإدخال الأرقام السداسية العشرية وغيرها.
بعد تحديد محدد التنسيق في معلمة التنسيق ، يجب عليك تحديد عنوان المتغير الذي سيتم تخزين قيمة عنصر الإدخال فيه. للقيام بذلك ، يتم وضع رمز العطف & قبل عنوان المتغير.
مثال على استخدام وظيفة المسح الضوئي () لقراءة سلسلة:
# تشمل
كثافة العمليات الرئيسية () {
اسم الحرف [50];
برينتف ("أدخل اسمك:");
سكانف ("٪س " ، الاسم);
برينتف ("مرحبا ، ٪ ق!"،الاسم);
العودة 0;
}
في هذا المثال ، يتم إدخال سلسلة من لوحة المفاتيح ، والتي يتم حفظها في مصفوفة أحرف الاسم. ثم يتم عرض السلسلة باستخدام وظيفة برينتف ().
ومع ذلك ، تجدر الإشارة إلى أن وظيفة المسح الضوئي() لديها بعض القيود. على سبيل المثال ، يتوقف عن القراءة عند مواجهة المساحة الأولى أو حرف السطر الجديد. لذلك ، إذا كانت سلسلة الإدخال تحتوي على مسافات ، فأنت بحاجة إلى استخدام طريقة مختلفة لقراءة السلسلة.
لقراءة سلسلة أكثر تعقيدا في ج ، يمكنك استخدام وظائف فجيتس() أو جيتس (). تسمح لك بقراءة الأسطر ذات المسافات.
باستخدام وظيفة يحصل ()
وظيفة يحصل () هي واحدة من الطرق لقراءة سلسلة من لوحة المفاتيح في لغة البرمجة ج. تتيح لك هذه الوظيفة قراءة سلسلة ، بما في ذلك المسافات ، وحفظها في مجموعة من الأحرف.
لاستخدام وظيفة جيتس () ، تحتاج إلى توصيل ملف الرأس.
بناء الجملة لاستخدام وظيفة يحصل ():
- شار * يحصل (شار * شارع);
تأخذ وظيفة جيتس () كوسيطة مؤشر إلى مجموعة من الأحرف ، والتي يجب أن تكون ذات حجم كاف لتخزين سلسلة الإدخال. قيمة الإرجاع للدالة هي مؤشر إلى مجموعة من الأحرف التي يتم تخزين سلسلة القراءة فيها.
مثال على استخدام وظيفة جيتس ():
# تشمل
كثافة العمليات الرئيسية () {
شارع شار [50];
برينتف ("أدخل السطر:");
يحصل (شارع);
برينتف ("السلسلة المدخلة: ٪ س
"،شارع);
العودة 0;
}
في هذا المثال ، يطلب من المستخدم إدخال سلسلة ، وبعد ذلك يتم حفظ سلسلة القراءة إلى مجموعة من الأحرف شارع. ثم يتم عرض السلسلة باستخدام وظيفة برينتف ().
ومع ذلك ، تجدر الإشارة إلى أن وظيفة يحصل() ليست آمنة ، لأنه لا يتحقق من حجم سلسلة الإدخال ، والتي يمكن أن تؤدي إلى تجاوز سعة المخزن المؤقت. بدلا من ذلك ، فمن المستحسن استخدام نظائرها أكثر أمنا ، مثل وظيفة فجيتس () ، والذي يسمح لك لتحديد الحد الأقصى لعدد الأحرف للقراءة.
الفرق بين المسح الضوئي()ويحصل ()
وظائف في لغة البرمجة ج ، يتم استخدام وظائف مختلفة لقراءة السلاسل ، اثنان منها سكانف () و جيتس (). في هذا القسم ، سننظر في الفرق بين هذه الوظائف.
| وظيفة المسح الضوئي () | يحصل () وظيفة |
|---|---|
| آمن | يحتمل أن تكون غير آمنة |
| تحويل التنسيق | لا تحتاج إلى تحديد التنسيق |
| مساحات القراءة | يقرأ المسافات كأحرف |
| تقييد السلسلة | لا يوجد حد |
الأمن: واحدة من الاختلافات الرئيسية بين وظائف المسح الضوئي() ويحصل() هو أمنهم. يمكن أن تتسبب وظيفة المسح الضوئي () في تجاوز سعة المخزن المؤقت إذا تجاوزت البيانات المدخلة الطول المتوقع. هذا يمكن أن يؤدي إلى سلوك البرنامج غير معروف أو أخطاء. يحصل() وظيفة يمكن أيضا أن يسبب تجاوز سعة المخزن المؤقت ، لذلك فمن غير المستحسن استخدامه كوسيلة آمنة لإدخال السلاسل.
تحويل التنسيق: تتطلب وظيفة المسح الضوئي () تحديد تنسيق البيانات المراد قراءتها. على سبيل المثال ، لقراءة سلسلة بدون مسافات ، تحتاج إلى استخدام التنسيق "٪ ق". وظيفة يحصل () يقرأ السلسلة تماما دون تحديد الشكل.
مسافات القراءة: تقرأ وظيفة المسح الضوئي () الأحرف غير البيضاء فقط بشكل افتراضي. إذا كنت بحاجة إلى قراءة المسافات في سلسلة ، فأنت بحاجة إلى استخدام التنسيق" ٪ [^
]". وظيفة يحصل () يقرأ جميع الأحرف في سلسلة ، بما في ذلك المسافات.
تقييد السلسلة: تحتوي وظيفة المسح الضوئي() على حد لطول السلسلة المراد قراءتها ، والتي يجب تحديدها مسبقا. على سبيل المثال ، يمكنك استخدام تنسيق "%10" لقراءة سلسلة لا يزيد طولها عن 10 أحرف. وظيفة يحصل () ليس له حد على طول السلسلة ، والتي يمكن أن تؤدي إلى تجاوز سعة المخزن المؤقت.
لذا ، فإن وظيفة المسح الضوئي () أكثر مرونة ، ولكنها تتطلب المزيد من الرعاية والتحقق من البيانات. وظيفة يحصل () هو أسهل للاستخدام ، ولكن أقل أمنا ويمكن أن يسبب مشاكل تجاوز سعة المخزن المؤقت. فمن المستحسن استخدام بدائل أكثر أمنا مثل فجيتس() أو سكانف_س().
أ) ميزات استخدام وظيفة المسح الضوئي ()
يتم استخدام وظيفة المسح الضوئي() في لغة البرمجة ج لقراءة البيانات من دفق الإدخال. إنها واحدة من أكثر الوظائف شيوعا لإدخال البيانات وتوفر العديد من الاحتمالات للعمل مع الإدخال.
واحدة من ميزات وظيفة المسح الضوئي() هو قدرته على قراءة البيانات من أنواع مختلفة. اعتمادا على سلسلة التنسيق التي تم تمريرها كمعلمة ، يمكن للمسح الضوئي() قراءة كل من القيم الصحيحة وأرقام الفاصلة العائمة والسلاسل وحتى الأحرف. هذا يجعل الوظيفة مرنة للغاية ومريحة للعمل مع أنواع مختلفة من البيانات.
ميزة أخرى مهمة لوظيفة المسح الضوئي () هي أنه يمكن تخطي أحرف أو سلاسل معينة في دفق الإدخال. هذا مفيد للغاية عندما تحتاج إلى قراءة جزء فقط من البيانات من صف أو دفق. يستخدم الرمز "٪ * " لهذا الغرض. على سبيل المثال ، " ٪ *د "تعني تخطي قيمة عدد صحيح ،" ٪ *ق " تعني تخطي سلسلة.
ميزة أخرى مفيدة لوظيفة المسح الضوئي () هي القدرة على تحديد الحد الأقصى لطول السلسلة عند قراءتها. هذا يتجنب تجاوز سعة المخزن المؤقت عند قراءة السلاسل. للقيام بذلك ، يتم استخدام محدد "٪ نس" ، حيث "ن" هو الحد الأقصى لطول السلسلة.
من المهم ملاحظة أن وظيفة المسح الضوئي() ترجع عدد العناصر التي تمت قراءتها بنجاح. يتيح لك ذلك التحقق مما إذا كانت جميع البيانات قد تمت قراءتها بشكل صحيح. إذا قامت الدالة بإرجاع قيمة أقل من الكمية المتوقعة من البيانات ، فقد يشير ذلك إلى وجود خطأ في الإدخال. في هذه الحالة ، يمكن اتخاذ التدابير المناسبة للتعامل مع الخطأ.
يتطلب استخدام وظيفة المسح الضوئي () الرعاية والحذر. يمكن أن يؤدي الاستخدام غير الصحيح إلى حدوث أخطاء في البرنامج أو ثغرات أمنية. من المهم التأكد من تطابق سلاسل التنسيق المرسلة مع بيانات الإدخال والتعامل مع الأخطاء المحتملة.