أهلا ومرحبا بكم مرة أخرى.
أريد أن أكمل مناقشتنا على بعض الوظائف في مكتبة
c القياسية.
هذه الكثير من الوظائف لقد مررنا بالفعل في الفصل ، لكنني
أردت أن أذكرك.
لذلك هناك الكثير من المهم وظائف مختلفة من مكتبة c
القياسية التي لدينا بالفعل تناولها خلال الدورة مع
جميع الأمثلة لدينا وجميع الأشياء التي تعلمناها.
تحدثنا كثيرا عن وظائف السلسلة.
وبعضها سهل الاستخدام للغاية والبعض الآخر سنستخدمه كثيرًا
، لذا يجب أن تكون على دراية بها.
لاستخدام أي من هذه الوظائف ، تحتاج إلى تضمين سلسلة
ملف الرأس. ح ، كل شيء يتم تعريفه في السلسلة. ح.
تحدثنا عن str cat.
سلسلة القط تسلسل اثنين سلاسل ، معلمتان يتطلب
الأمر ، مؤشرين حرف.
وسوف تعود شخصية المؤشر متسلسل إلى الآخر.
لذلك وضع حرف لاغى في نهاية السلسلة النهائية
، ترجع الدالة s1.
Str char هذا يبحث عن ملف سلسلة تحتوي على حرف.
هذا سيعود أ شخصية نجمة كذلك.
إنها طريقة جيدة للبحث.
تحدثنا عن هذا تماما قليلا مع سلسلة القط.
ستجري مقارنة Str لمقارنة سلسلتين.
هذه هي الطريقة القياسية للقيام بذلك.
يستغرق مؤشرين و تقوم بإرجاع عدد صحيح.
لدينا بعض الأمثلة على ذلك حيث إذا قمت بإرجاع صفر ، فإن
السلاسل تكون متساوية.
إذا رجعنا أكبر من أو أقل من ، إذا استدرت
أكبر من الصفر ، فهذا يعني أن s1 عادةً ما تكون أكبر في الحجم الأبجدي.
لذلك إذا مررت في سلسلة ذلك تحتوي على a ثم السلسلة الثانية
هي b ، ستعود أكبر من صفر لأنه أو قد يتحول إلى أقل من الصفر لأن أ أقل
من ب.
إذا مررت في ب كأول المعلمة و c هي المعلمة الثانية
نوعًا ما من السلسلة بدءًا من b أو c ، سيعود
أكبر من صفر.
لذا عليك أن تفهم تلك القيم المرجعة.
هذا هو المهم مقارنة str.
نسخ Str.
هذه هي الطريقة التي يمكنك تحديدها من سلسلة إلى سلسلة أخرى.
تذكر ، سلاسل ، مؤشرات و مصفوفات الأحرف ، لا يمكنك
تعيين السلسلة مباشرة باستخدام عامل التخصيص.
للأعداد الصحيحة والعائمة ، يمكنك ذلك فقط استخدم عوامل التشغيل المتساوية.
لا يمكنني فعل ذلك بالخيوط.
لذلك عليك استخدام نسخة str عندما تقوم بذلك تريد تعيين سلسلة لمؤشر أو
مؤشر حرف أو مجموعة أحرف.
يمكنك تهيئة شخصية سلسلة حرفية ثابتة داخل علامات الاقتباس
المزدوجة.
ولكن بعد ذلك ، بعد التهيئة إذا كنت تريد تغييره
، فسيتعين عليك استخدام نسخة str.
طول السلسلة.
وظيفة أخرى مهمة ل الحصول على طول الخيط.
هذا يعيد حجم t وهو ال عدد صحيح يمثل الطول.
كل هذه الوظائف السلسلة تأخذ المؤشرات أو مصفوفات
الأحرف كمعلمات.
لذلك نحن بحاجة إلى أن نفهم كيف يعمل ذلك أيضًا.
سلسلة أخرى دالة strncat.
تذكر جميع الوظائف التي تضيف النهاية بدلاً من ذلك تكون أكثر
أمانًا لأنك لا يوجد فيضان عازلة.
لذلك في strncat المعلمة الثالثة يضاف وهذا سيقول نسخ أو تسلسل
العديد من المعلمات.
عادة ، المعلمة الثالثة هي سيكون حجم المعلمة
الأولى لأنك لا تريد لنسخ أي شيء أكبر من ذلك.
يجب أن تكون هذه الوظائف تستخدم على
وظائف السلسلة الأخرى لأنها كذلك آمن لتدفق المخزن المؤقت.
مقارنة Strn.
مرة أخرى ، ستقوم بمقارنة بعض عدد الأحرف في s1 و s2.
نسخة Strn ، هنا المعلمة الثالثة من المحتمل أن تكون النهاية هي طول
السلسلة s1 أو حجمها.
لأنك ستقوم بنسخ s2 و s1 ، لكنك لا ترغب في نسخ وحدات بايت أكثر
مما يمكن لـ s1 الاحتفاظ به أو تخزينه.
شارع شار.
هذا هو المكان الذي يمكنك البحث فيه السلسلة الخاصة بآخر
تواجد للحرف.
لذلك لاحظت أن هذا يبدو للغاية مألوف أو مشابه لـ str char ، هناك
حرف r إضافي هنا.
لذا بدلاً من إرجاع الأول التكرار ، سيعيد هذا التكرار
الأخير ، لكنك استخدمته بنفس الطريقة كالآخر.
شارع شارع.
هذا سوف يبحث عن سلسلة.
لذلك فهذه وظيفة البحث حيث تحاول العثور بشكل أساسي
على سلسلة فرعية داخل سلسلة.
مرة أخرى ، أخذ مؤشرين حرف.
ستراتوك.
كانت هذه وظيفة مهمة حيث يمكنك المساعدة في تحليل البيانات.
تأخذ Strtok المحدد كـ المعلمة الثانية وسوف تبحث
عن هذا الحرف المحدد في أي مكان داخل السلسلة.
غالبًا ما تستخدم شيئًا مثل مسافة أو خط تغذية لـ s2.
سوف يكسر الخيط إلى عدد من الرموز المختلفة.
مرة أخرى ، استخدمه عندما تريد لتحليل البيانات عادة.
في كل مرة يجب عليك الاتصال بـ strtok عدة مرات حتى تصبح
خالية إذا كنت لا تزال تبحث عن الرمز التالي الذي تريد البحث عنه في سلسلة
معينة.
كان لدينا أيضا بعض المهم وظائف الشخصية.
جميع وظائف الشخصية يتم تعريفها في النوع. ح.
تعمل الشخصية التي نقوم بها المستخدمة هي الدالات التي تتحقق مما
إذا كان الحرف موجودًا أم لا أبجدي رقمي أو ما إذا كان فارغًا
أو ما إذا كان عنصر تحكم حرف رقم ، كان هناك عدد من الوظائف
المختلفة.
لذا تذكر هذا النوع. ح يسمح علينا أن نتحقق من هذه الشخصيات
المختلفة ما هي عليه بالفعل.
كان لدينا أيضًا بعض وظائف التحويل في النوع. h ، وهما الجزءان العلويان لدينا بشكل أساسي.
اثنان أقل يأخذ شخصية وسيعطي الحرف
الصغير المكافئ لذلك c.
تذكر أننا واجهنا تحديًا حيث قمنا بتحويل الأحرف الصغيرة إلى الأحرف الكبيرة.
في هذا التحدي ، أضفنا في الواقع لجدول ASCII الخاص بنا ، ولكن كان بإمكاننا
استدعاء اثنين في الجزء العلوي من الحرف.
كان بإمكاننا إعداد اثنين حول طالما
قمنا بتضمين ctype. ح وهذا من شأنه أن يتحول من الأحرف الصغيرة إلى الأحرف الكبيرة.
كان لدينا الكثير من IO الوظائف والمدخلات والمخرجات.
ركزنا على القراءة و كتابة الملفات ، لكننا نقرأ أيضًا
المدخلات من لوحة المفاتيح ، ونخرجنا البيانات إلى وحدة التحكم أو الشاشة.
لذلك لاستخدام IO الأكثر شيوعًا وظائف ، هذا كل ما في
المعيار. h header. ملف.
يحتوي هذا الملف على تصريحات لـ وظائف IO المختلفة بالإضافة
إلى تعريفات للثوابت ، مثل نهاية الملف ، معيار فارغ في الإخراج القياسي والخطأ
القياسي.
هذه كلها قيم ثابتة.
هناك أيضًا ثابت لـ ملف بنية الملف.
Fclose هي وظيفة نحن تستخدم لإغلاق تياراتنا.
يغلق الملف تم تحديده بواسطة مؤشر الملف.
وتعيد صفرًا إذا كانت كذلك إغلاق ناجح ، وإلا eof.
Feof ، هذه وظيفة لم نقم بها تستخدم بشكل صريح ولكن هذا سيتحقق مما إذا كنت
في النهاية أم لا من الملف بدلاً من مقارنته بثابت
، يمكنك إجراء تعارض.
فلاش.
هذه وظيفة سوف تتدفق جميع بيانات المخزن المؤقت الداخلي.
في بعض الأحيان تحتاج إلى القيام بذلك عندما تريد البدء من جديد ، لكنك
في الأساس تتخلص منه من أي شيء داخل المخزن المؤقت.
لدينا أيضا fgetc.
هذه قراءة فردية الأحرف ، يأخذ مؤشر الملف.
لدينا موقف خاطئ.
هذا هو بعض من وظائف الموقف.
يحصل على وضع الملف الحالي للملف المرتبط
بمؤشر الملف ويخزنه في نوع الموضع f ، والذي تم تعريفه في معيار
io. ح كذلك.
كان لدينا مناوراتنا.
كانت هذه القراءة في سلاسل.
جميل جدا ، يقرأ الشخصيات من الملف المشار إليه
، ولكن عدد الأحرف.
سيفتح Fopen ملفًا بتنسيق وضع محدد: قراءة أو كتابة أو
إلحاق باستخدام مؤشر ملف.
سيقوم Fprintf بكتابة البيانات وتنسيقها الإخراج ، وهو مشابه لوظيفة printf
الذي سيستغرقه وسيطات يحددها المؤشر ثم استخدم البيانات
المنسقة للكتابة.
حتى تتمكن من كتابة الأعداد الصحيحة ، الزوجي باستخدام محددات التنسيق ثم المتغيرات
التي تريد كتابتها.
كان لدينا أيضا fputc ، والتي سوف كتابة الأحرف إلى ملف.
ستكتب Fputs سلسلة إلى ملف.
يأخذ عازلة وملف ضع مؤشرًا لما تريد كتابته والملف
الذي تريد الكتابة إليه.
سيقرأ Fscanf البيانات من ملف.
سوف تحصل على المدخلات ، و سيستخدم نفس نوع التنسيق الذي
ستتخذه scanf محددات التنسيق والمتغيرات.
لكن هذا جميل تريده قراءة في البيانات مفصولة بمسافة.
يمكنك استخدام fscanf ويمكنك تحديد النوع ، لذا اقرأه مباشرة في أنواع البيانات
ints ، والمضاعفات ، وأنواع البيانات المحددة.
سوف يقوم Fseek بتحريك الموقف المكان الذي تشير إليه في ملف.
لذلك ليس عليك أن تبدأ من بداية الملف أو نهايته.
يمكنك الذهاب مباشرة إلى منتصف الملف.
بمجرد البحث عن هذا المنصب ، سيصبح ملف ستستخدم القراءة أو الكتابة التالية
هذا الموقف للكتابة أو القراءة.
وضع Fset يشبه fseek.
يحدد موضع الملف الحالي في الملف
المرتبط بمؤشر الملف إلى القيمة وأشار إلى f position ، fpos.
كان لدينا أيضا فتيل.
Ftell سيعود كيف العديد من البايتات من البداية
تعتمد على مؤشر الملف.
لذا فهو الموقع الخارجي النسبي في بايت من الموضع الحالي ،
وليس البداية دائمًا ، لكن الموقف الحالي.
نحن نستخدم ftell في واحد من لدينا التحديات لقراءة ملف في الاتجاه المعاكس.
برنتف.
نحن نستخدم هذا ربما أكثر من أي وظيفة أخرى.
كان هذا معروضًا الإخراج إلى الشاشة.
يستخدم محددات التنسيق وعدد متغير من الوسيطات
مفصولة بفواصل.
يعد Printf مفيدًا جدًا في التصحيح وعرض الإخراج ، وهو ما
تفعله قليلاً داخل برنامج c.
إزالة.
الإزالة هي وظيفة حيث يمكنك حذف ملف.
يأخذ اسم ملف.
يجب إغلاق مؤشر الملف.
لا يمكنك فتحه.
ستؤدي إعادة التسمية إلى إعادة تسمية ملف واحد إلى الملف الآخر ، يجب أيضًا
إغلاق الملف لا يمكن فتحه.
سوف يقرأ Scanf المدخلات من عادة الافتراضي من لوحة المفاتيح.
يمكنك تغييره لقراءة الإدخال من التدفقات الأخرى إذا كنت ترغب في ذلك.
لدينا أيضًا وظائف التحويل التي ناقشنا طوال الدورة.
معظم هذه الوظائف موجودة في ملف معيار lib. h ، ملف الرأس.
كان لدينا وظيفة atof.
هذا هو تحويل سلسلة إلى تطفو ، وتمررها في سلسلة.
لدينا وظائف atoi.
هذا التحويل سلسلة إلى عدد صحيح.
يقوم Atol بتحويل سلسلة نصية إلى ملف طويل ، وتمرير السلسلة وترجع
إما العائد الطريقة التي تقوم بالتحويل إليها.
هذه مفيدة جدا.
غالبًا ما تستخدم هذه للتحويل السلاسل إلى نوع من أنواع الأرقام.
تقوم أتول بتحويلها إلى كثافة العمليات الطويلة.
ولكن تأكد من إلقاء نظرة على ملف رأس lib قياسي لمزيد
من وظائف التحويل.
كان لدينا وظائف الذاكرة لدينا وظائف تخصيص الذاكرة الديناميكية.
هذه حقا مهمة.
تخصيص الذاكرة الديناميكي مهم لأنه أكثر كفاءة.
أنت تستخدم فقط ملف الذاكرة التي تحتاجها.
لا تقوم بإنشاء بيانات ثابتة.
يسمح لبرنامجك أن تكون أكثر مرونة.
كل هذه الوظائف متضمن داخل lib القياسي. ح.
تحدثنا عن calloc.
Calloc هي وظيفة رائعة حيث يمكنك تخصيص حجم
معين وسيتم ضربه في n.
حتى تتمكن من تحديد نوع البيانات وكذلك سوف تتكاثر.
الشيء الجميل في calloc ، يقوم بتهيئة بياناتك.
لذلك فهو مفضل حقًا على malloc.
لدينا وظيفتنا الحرة مما سيؤدي إلى حذف الذاكرة.
كل هذه الذاكرة مستمرة ليتم إنشاؤها على الكومة.
لذلك سنكون في الجوار كثيرًا لفترة أطول ، ولكن الأمر متروك لك
كمبرمج لإدارة هذه الذاكرة.
تريد دائمًا تحرير ملف الذاكرة بعد الانتهاء من استخدامها
لأن الذاكرة نادرة مورد في برامج أخرى ونريد استخدام تلك الذاكرة.
لذلك دائما اتصل مجانا بعد تفعل calloc أو malloc.
مالوك أبسط نسخة من إنشاء الذاكرة.
في الواقع لا تهيئة أي بيانات.
يأخذ فقط الحجم كمعلمة.
تقوم بإرجاع نجمة باطلة.
لذلك تحتاج دائمًا إلى الإدلاء بها تمامًا كما هو الحال مع calloc لأي نوع
من الذاكرة التي تشير إليها.
إذا كنت تشير إلى int أو تطفو ، عليك أن ترمي ذلك.
لدينا أيضا إعادة تخصيص.
Realloc رائع لأنك تستطيع ذلك تضيف في الواقع إلى الذاكرة الموجودة.
وهكذا بهذه الطريقة يمكن أن تكون الذاكرة ديناميكية.
يمكنك جعله أكبر إذا تريد تخزين المزيد من البيانات.
يأخذ Realloc مؤشرًا بالحجم.
سوف تحتفظ بجميع البيانات كانت الذاكرة السابقة تشير إلى.
سيخصص ذاكرة جديدة لكنه سيحتفظ به ، حتى تتمكن من إضافة
بعض الذاكرة الموجودة.
مفيد جدا جدا.
في خلق الذاكرة بشكل ديناميكي سيكون مفيدًا حقًا في جميع برامجك خاصةً
لأن المؤشرات مهمة جدًا جدًا فهي أكثر
كفاءة.
لكن تأكد من أنك تفهم كل شيء هذه الملفات الرأسية التي نستخدمها نوعًا ما طوال
الدورة التدريبية.
هذه هي أهمها هي مهمة جدا جدا.
سنتحدث عن بعض الجديد في المحاضرتان التاليتان اللتان لم
نناقشهما بقدر ما أحببت.
لكن هؤلاء بعض المهم أيضًا.
شكرًا لك.