يعد العثور على أطول كلمة في سلسلة واحدة من المهام الشائعة التي يواجهها المبرمجون بلغات برمجة مختلفة. تنشأ مثل هذه المهمة ، على سبيل المثال ، عند العمل مع البيانات النصية أو عند معالجة إدخال المستخدم.
أسهل طريقة لحل هذه المشكلة هي تقسيم السلسلة إلى كلمات وحساب طول كل كلمة. ثم حدد الكلمة ذات الطول الأطول. للقيام بذلك ، يمكننا استخدام الأساليب والوظائف المختلفة المتاحة في لغة البرمجة سي.
إحدى هذه الطرق هي استخدام وظيفة سترتوك لتقسيم سلسلة إلى كلمات منفصلة. ثم يمكننا استخدام وظيفة سترلين للحصول على طول كل كلمة ومقارنتها. أخيرا ، سنجد الكلمة ذات الطول الأقصى ونعرضها على الشاشة.
نموذج التعليمات البرمجية:
# تعريف_التحذير
# تشمل
# تشمل
كثافة العمليات الرئيسية()
{
شارع شار [100];
كلمة شار ماكس [100];
int max_length = 0;
printf("Введите строку: ");
gets(str);
char* word = strtok(str, " ");
while (word != NULL)
{
int length = strlen(word);
if (length > max_length)
{
max_length = length;
strcpy(max_word, word);
}
word = strtok(NULL, " ");
}
printf("Самое длинное слово: %s
", max_word);
return 0;
}
- Разделение строки на слова
- Python
- JavaScript
- Java
- Прохождение по словам и нахождение самого длинного
- Обработка особых символов
- Игнорирование регистра
- معالجة الاستثناء
- أمثلة على استخدام الوظيفة للبحث
- سؤال وجواب
- هل من الممكن العثور على أطول كلمة دون استخدام لغة برمجة?
تقسيم سلسلة إلى كلمات
لتقسيم سلسلة إلى كلمات منفصلة ، تحتاج إلى استخدام طرق ووظائف مختلفة اعتمادا على لغة البرمجة. فيما يلي أمثلة لتقسيم سلسلة إلى كلمات بلغات مختلفة:
بايثون
- باستخدام طريقة الانقسام():
- النتيجة:
| كود: | |
|
| ['مثال' ، ' سلسلة،' ، 'التي' ، 'تحتاج إلى' ، 'تقسيم'] | |
|
- طباعة (كلمات)
| النتيجة: | |
| كود: | |
| دع الكلمات = سلسلة.انقسام (""); | |
| (4) ["مثال" ، "سلاسل" ، " أي " ، "حاجة" ، "انقسام"] | |
كود:
- دع السلسلة = "سلاسل محددة على سبيل المثال";
| |
| كود: | |
| النظام.خارج.برينتلن (كلمة); | |
|
للمشاركة
باستخدام فئة سترينجتوكينيزر:
كود:
سلسلة سلسلة = "سلاسل محددة على سبيل المثال";
سترينغتوكينيزر توكينيزر = سترينغتوكينيزر جديد (سلسلة،" -");
في حين (توكينيزر.هاسموريتوكينز ()) {
النظام.خارج.برينتلن (توكينيزر.التاليتوكين());
}
النتيجة:
مثال
خطوط
مع
المحددات
- للعثور على أطول كلمة في سلسلة ، تحتاج إلى تصفح كل كلمة ومقارنة طولها بالقيمة الأكبر السابقة. في هذه المقالة ، سنقوم بتحليل طريقة بسيطة وفعالة لإنجاز هذه المهمة.
- 1. تحتاج أولا إلى تقسيم السلسلة إلى كلمات منفصلة. يمكن القيام بذلك باستخدام الوظيفة المضمنة لتقسيم سلسلة إلى سلاسل فرعية بمسافات أو فواصل أخرى.
- 2. ثم تحتاج إلى إنشاء متغير لتخزين أطول كلمة وتعيين قيمة الكلمة الأولى من السلسلة.
- 3. بعد ذلك ، تحتاج إلى الذهاب من خلال كل كلمة في السلسلة ومقارنة طولها مع طول أكبر كلمة الحالية. إذا كان طول الكلمة الحالية أطول ، فقم بتحديث قيمة المتغير بأكبر كلمة.
4. في نهاية الحلقة ، سنحصل على المتغير الذي يحتوي على أطول كلمة في السلسلة.
- نموذج شفرة جافا سكريبت:
| فار شارع = "أبجد هوز دولور الجلوس أميت كونسيكتيتور أديبيسينغ إليت"; | كلمات فار = شارع.تقسيم (" " ) ؛ / / تقسيم سلسلة إلى كلمات |
|---|---|
إلى عن على (فار ط = 1; أنا < كلمات.الطول ؛ أنا {) { | كلمة طويلة = كلمات [أنا]; // تحديث المتغير بأكبر كلمة |
} | } |
وحدة التحكم.سجل ("أطول كلمة في السلسلة:" + أطول كلمة); | ستكون نتيجة تنفيذ الكود: "أطول كلمة في السلسلة: كونسيكتور". |
- الآن أنت تعرف كيفية العثور على أطول كلمة في سلسلة باستخدام خوارزمية بسيطة وفعالة. يمكن استخدام هذا النهج عند العمل مع البيانات النصية في مهام مختلفة حيث يكون من الضروري العمل مع كلمات فردية على التوالي.
| معالجة الأحرف الخاصة | عند معالجة السلاسل في البرمجة ، في بعض الأحيان هناك حالات عندما تكون هناك أحرف خاصة في النص يمكن أن تؤثر على صحة التعليمات البرمجية أو إخراج نتائج غير صحيحة. |
|---|---|
يمكن أن تكون الأحرف الخاصة في السلاسل إما أحرف تحكم (مثل فواصل الأسطر أو علامات التبويب) أو أحرف لها معنى خاص في سياق لغة البرمجة (علامات الاقتباس وعلامات الترقيم وما إلى ذلك.). | للتعامل بشكل صحيح مع الأحرف الخاصة في السلاسل ، يجب عليك استخدام طرق أو وظائف خاصة توفرها لغة البرمجة أو المكتبات. |
بعض الشخصيات الخاصة: | حرف فاصل الأسطر ( |
) يستخدم لتحريك المؤشر إلى سطر جديد.
يتم استخدام حرف علامة التبويب (\ر) لإنشاء مسافة بادئة في شكل "علامة تبويب" بين العناصر.
يتم استخدام حرف علامة الاقتباس (\") للإشارة إلى بداية ونهاية سلسلة في بعض لغات البرمجة.
يتم استخدام حرف الخط المائل العكسي (\\) للهروب من الأحرف الخاصة. على سبيل المثال ، لإدراج حرف علامة اقتباس داخل سلسلة ، تحتاج إلى استخدام المجموعة \".
- كود
- العالم!");
وحدة التحكم.سجل ("هذا هو \ تتاب \ تكسامبل");
| هذا مثال على علامة التبويب | وحدة التحكم.سجل ("أنا \" ونقلت\""); |
|---|---|
| أنا "مقتبس" | الهروب من الشخصيات الخاصة: |
| كود | النتيجة |
| من وحدة التحكم.سجل ("هذا هو \ \ مائل"); | هذا هو \ مائل |
وحدة التحكم.سجل ("قال ، \ \" مرحبا\\"!");
- قال: "مرحبا"!
- من المهم مراعاة ميزات بناء الجملة للغة البرمجة ، وكذلك تطبيق الأساليب أو الوظائف المناسبة لمعالجة الأحرف الخاصة في السلاسل.
- تجاهل القضية
- عند البحث عن أطول كلمة في سلسلة ، يمكنك اختيار تجاهل حالة الأحرف. هذا يعني أنه سيتم النظر في الحروف فقط في النص ، بغض النظر عن حالتهم. على سبيل المثال ، سيتم اعتبار الكلمتين "مرحبا" و "مرحبا" نفس الكلمة.
يمكن استخدام طرق مختلفة لتجاهل الحالة:
تقليل السلسلة بأكملها إلى أحرف صغيرة: يمكنك استخدام الطريقة
إلىأحرف صغيرة()
لتحويل سلسلة إلى أحرف صغيرة قبل التحليل.
تحويل الكلمات التي تتم مقارنتها بالأحرف الصغيرة فقط: قبل مقارنة كل كلمة بأطول كلمة ، يمكنك تحويلها إلى أحرف صغيرة باستخدام الطريقة
إلىأحرف صغيرة()
.
مثال على استخدام الطريقة
إلىأحرف صغيرة()
:
سلسلة المصدر
سلسلة محولة
"مرحبا بالعالم"
"مرحبا بالعالم"
"مرحبا بالعالم"
"مرحبا بالعالم"
"مرحبا بالعالم"
"مرحبا بالعالم"
مثال على استخدام تجاهل الحالة عند البحث عن أطول كلمة في سلسلة:
الخط الأصلي: "الثعلب البني السريع"
نأتي الخط إلى أحرف صغيرة:"الثعلب البني السريع"
تقسيم السلسلة إلى كلمات: [""،"سريع" ، "براون" ، "فوكس"]
نجد أطول كلمة:"سريع"
وبالتالي ، فإن تجاهل الحالة يسمح لك بحل مشكلة العثور على أطول كلمة في السلسلة بمرونة ودقة أكبر. هذا مفيد بشكل خاص عندما لا تكون حالة الشخصية ضرورية للمهمة التي يتم حلها.
- مثال على استخدام الكتلة النهائية:
- إذا كنت بحاجة إلى العثور على جميع الكلمات في سلسلة بطول معين ، يمكن أن تكون وظيفة البحث لأطول كلمة مفيدة للغاية. على سبيل المثال ، لديك سلسلة "هذا مثال لسلسلة بها عدة كلمات" وتريد العثور على جميع الكلمات التي تتكون من 5 أحرف. بمساعدة أطول وظيفة بحث عن الكلمات ومنطق إضافي ، يمكنك الحصول على كل الكلمات التي تحتاجها.