أهلا ومرحبا. في هذه المحاضرة ، أريد أن أتحدث عن تحويل السلاسل
، بعض وظائف السلاسل.
من الشائع جدًا تحويل حالة الأحرف على وجه التحديد.
إذا كنت ترغب في جعل سلسلة أحرفك كلها أحرفًا كبيرة ، لحسن
الحظ ، فهناك وظيفتان علويتان تتحولان
من الأحرف الصغيرة إلى الأحرف الكبيرة
ووظيفتين صغيرتين تتحول من الأحرف الكبيرة إلى
الأحرف الصغيرة. الأحرف الصغيرة جدًا إلى الأعلى ، ومن الأعلى إلى الأسفل.
كلتا الوظيفتين ترجع إما الحرف المحول أو نفس الحرف
للأحرف الموجودة بالفعل في الحالة الصحيحة أو غير قابلة
للتحويل مثل علامات الترقيم إذا لم تتمكن من تحويلها.
هذه هي الطريقة التي يمكنك بها تحويل سلسلة إلى أحرف كبيرة.
تذكر ، يتم استخدام هذه في الواقع على
أساس حرف بحرف.
لذلك إذا كان لديك مخزن مؤقت كان عبارة عن مجموعة أحرف
، فسيتعين عليك المرور عبر كل عنصر في المخزن المؤقت
ثم القيام برقمين علويين على هذا الحرف.
نحن هنا ننتقل إلى كل
عنصر في مصفوفة المحارف المخزنة لدينا
ونمررها إلى الطريقة العلوية.
وهذا سيعيد حرفًا ، وهذه حالة كبيرة وسنقوم بتخصيصها لمهاراتنا الأعلى.
سنفعل ذلك حتى نصل إلى الحرف
الفارغ. إذن ، هذه عبارة عن أربعة تتكون من سطر واحد فقط.
هذا يحول السلسلة بأكملها في حجم كبير
معدل المخزن المؤقت عن طريق التنقل عبر السلسلة حرفًا واحدًا في كل مرة.
تتوقف الحلقة عندما تصل إلى حرف إنهاء السلسلة ، الخط المائل العكسي صفر.
هناك نوعان من المردود العلوي من النوع int ، وهي قيمة
ASCII وتقوم بتحويلها فقط.
وستفعل الشيء نفسه إذا كنت تريد تحويله إلى أحرف صغيرة
، من السهل جدًا استخدام وظائف تحويل الحالة.
لذا يمكنك استخدام الدالة two الجزء العلوي مع وظيفة strstr لمعرفة ما
إذا كانت إحدى الخيوط تحدث في سلسلة أخرى تتجاهل الحالة.
لنلق نظرة على هذا المثال الذي يفعل ذلك بالضبط.
لدينا هنا مصفوفتان من الأحرف ، نص وسلسلة فرعية.
حجم النص مائة ، وحجم السلسلة الفرعية أربعون.
نطلب من المستخدم إدخال سلسلة للبحث عنها ، أقل من مائة حرف.
نحصل على ذلك ، ونخزنه في نص.
ثم نقوم بإدخال السلسلة التي يريدون إيجادها باستخدام strstr
، ثم السلسلة الفرعية ، بحيث يدخلون بعض السلاسل الفرعية الأخرى.
ثم نطبع السلسلة الأولى ثم نطبع السلسلة الثانية.
ثم نقوم بتحويل كلا الجملتين إلى أحرف كبيرة.
ومن ثم يمكننا القول إن السلسلة الثانية هي التي أوجدت السلسلة الأولى.
لذلك عندما نسمي strstr ، فإنه
يمكن أن يتجاهل الحالة. لأن تذكر ، كان أحد قيود strstr هو
أنه حساس لحالة الأحرف.
والآن يمكننا استخدام strstr في النص
والسلاسل الفرعية لأنها كلها أحرف كبيرة.
ومرة أخرى ، هذه طريقة لمعرفة ما إذا
كانت سلسلة فرعية في سلسلة كاملة تتجاهل الحالة.
أولاً ، نقوم بتحويل كل شيء إلى أحرف كبيرة والآن نقارن الأحرف الكبيرة ،
وهذا ما يفعله هذا البرنامج.
غالبًا ما تريد تحويل السلاسل إلى أرقام.
إذن ، هناك وظائف محددة تبدأ بـ a.
إنهم مثل atof و atoi و atol و atoll.
Atoi شائع جدًا ، تحويل سلسلة إلى عدد صحيح.
لذلك ، ستقوم atof بتحويل سلسلة ، وهي
مثل ASCII و ASCIItof. ستقوم بتحويل سلسلة إلى نوع بيانات.
لذا فإن atof هي ASCII إلى تعويم أو مضاعفة إلى تعويم.
وقد يكون لديك قيم إرجاع معينة. إذا لم يتم العثور عليه أو لا يمكن القيام به.
لذلك في بعض الأحيان لا يمكنك تحويل السلاسل إلى أعداد صحيحة ، خاصة إذا كان لديك سلسلة تحتوي على كلمات فقط.
عادة ، يمكنك استخدام هذه الوظيفة عندما يكون لديك في المثال.
إذا كان لديك سلسلة أحرف بها 98. 4 ، يمكن تمثيلها على أنها مضاعفة.
حتى تتمكن من القيام بذلك. إذا كان لديك سلسلة أحرف من Jason
، فلا يمكنك تحويلها إلى عدد صحيح
، لذلك لن يحدث شيء. لذلك عندما يكون لديك سلاسل أحرف بها
أرقام ، يمكنك تحويلها باستخدام وظائف ASCII إلى.
ويتم تضمين كل هذا في ملف رأس lib القياسي.
سترى أيضًا عكس ذلك لإنشاء
أعداد صحيحة للسلاسل ، فسترى أشياء مثل itoa ، وهي مخصصة لـ ASCII.
إذا كان لديك الرقم 98 وتريد تحويله إلى سلسلة ، فستقول itoa.
هناك أيضًا بعض الوظائف الأحدث.
هذه الأحجام مخصصة للخيط لمضاعفة
بدلاً من atof.
يمكنك استخدام هذه strtod
أو strtof أو stringtold.
ويتحول كل منهما إلى عوامات زوجية طويلة أو عوامات زوجية.
لكن أي منهما بخير. ASCII هي التقليدية.
أعتقد أنه تمت إضافة الدعامات والقواطع الأخرى في المعايير اللاحقة لـ c.
إذن ، هذا مثال على إجراء بعض التحويلات.
إنه أساسي للغاية. هنا لدينا مجموعة أحرف
str ، 3. 5 مساحة 2. 5 مساحة 1. 26.
لدينا بعض المؤشرات. وما زلنا نمر حتى
نقفز إذا لم نتمكن من تحويلها.
لذلك نقول strtod. نمرر في عنواننا
ptr ، المؤشر الخاص بنا ونمرر في سلسلة p
التي هي السلسلة الخاصة بنا
، 3. 5 2. 5.
الآن يمكنك أن تقول لماذا تقوم بالمرور في p str بدلاً من
str فقط وليس عليك ذلك. لكننا هنا نريد أن نتحقق فعليًا مما
إذا لم يكن هناك تحويل.
لذلك نظرًا لأننا نتحقق من عدم وجود تحويل ، يتعين علينا النظر إلى كلا المؤشرين.
لا يمكنك مقارنة ptr مع str لأن str مصفوفة.
لذلك سنستخدم القطعة pstr لتمثيل مصفوفة المحارف لدينا حتى نتمكن من المقارنة.
وإذا قارنا هذين الاثنين
، فهذا يعني أن pstr لم يخزن أي تحويل ، وهكذا
انتهينا. لم نتمكن فعليًا من تحويل هذه القيمة.
خلافًا لذلك ، إذا تمكنا من تحويل القيمة ، فسنقوم فقط بطباعتها
ثم ننتقل إلى التحويل التالي. ستساوي Pstar المؤشر.
لذا يمكنك تشغيل هذا ويمكنك أن ترى أنه سينتهي
بك الأمر بتحويل كل شيء في مصفوفة السلسلة إلى قيم مزدوجة
وقيم مزدوجة.
عادةً ما أستخدم atoi ، على الرغم من أن
أيًا منهما سيعمل.
هذه هي وظائف التحويل. شكرًا لك.