ماذا لو أعطيكم طريقة بسطر واحد للتحويل إلى capital إن كان small والتحويل إلى small إن كان capital
ما رأيكم ؟
ما رأيك استاذ خالد ؟
البرمجة = الرياضيات
ماذا لو أعطيكم طريقة بسطر واحد للتحويل إلى capital إن كان small والتحويل إلى small إن كان capital
ما رأيكم ؟
ما رأيك استاذ خالد ؟
البرمجة = الرياضيات
اقتباسماذا لو أعطيكم طريقة بسطر واحد للتحويل إلى capital إن كان small والتحويل إلى small إن كان capitalما رأيكم ؟
ما رأيك استاذ خالد ؟
تفضل,,, :D
افضل طريقه رأيتها على الإطلاق هى نسخة الأخ خالد الشايع و التى تقوم بتغيير حالة البت من واحد إلى صفر و من صفر لواحد و عند تضمينها بالسى او السى بلس او الأسمبلي تكون سريعه جدا جدا و لكن يعيبها محدوديتها بـ ASCII حيث ان unicode تستخدم اسليب مختلفه.
و الله ولي التوفيق
مدونتي: C++ Tips and Tricks
الجملة هي :
ch = ch + 32 * (1 - ch / 91 * 2);
ch / 91 قيمتتها 1 إن كان الحرف small ، وقيمتها 0 إن كان capital
ch / 91 * 2 قيمتتها 2 إن كان الحرف small ، وقيمتها 0 إن كان capital
1 - ch / 91 * 2 قيمتتها 1 - إن كان الحرف small ، وقيمتها 1 إن كان capital
في النهاية سننقص 32 في حال كان الحرف small وسنزيد 32 في حال كان الحرف capital
تم تعديل هذه المشاركة بواسطة namespace في 16 يوليو 2010 في 14:43
البرمجة = الرياضيات
namespace كتب:الجملة هي :
ch = ch + 32 * (1 - ch / 91 * 2);ch / 91 قيمتتها 1 إن كان الحرف small ، وقيمتها 0 إن كان capital
ch / 91 * 2 قيمتتها 2 إن كان الحرف small ، وقيمتها 0 إن كان capital
1 - ch / 91 * 2 قيمتتها 1 - إن كان الحرف small ، وقيمتها 1 إن كان capital
في النهاية سننقص 32 في حال كان الحرف small وسنزيد 32 في حال كان الحرف capital
تم تعديل هذه المشاركة بواسطة namespace في 16 يوليو 2010 في 14:44
البرمجة = الرياضيات
لا لا تحاول أخ حمزه, طريقة الأخ خالد أسرع و أبسط :P
هويدي كتب:لا لا تحاول أخ حمزه, طريقة الأخ خالد أسرع و أبسط :P
هههههه
هذه جملة واحدة فقط :P
كلامك صحيح من ناحية السرعة
أخذنا تلك الطريقة في مادة computer interfacing وتعلمنا أن ASCII CODES لم تكتب عبثاً ، وإنما على ذلك الأساس
ورجينا همتك في اللغز الرابع
سلام
البرمجة = الرياضيات
هذه طريقة أخرى خطرت لي باستخدام الـ boolean to int conversions:
char a = 'A', b; b = a + (a > 90) * -32 + (a <= 90) * 32;
تعديل: شكراً للأخ namespace على اكتشاف مشكلة في الكود قبل التعديل :)
تم تعديل هذه المشاركة بواسطة Khaled.Alshaya في 16 يوليو 2010 في 19:35
Khaled.Alshaya كتب:اللغة الانجليزية فقط إما ASCII أو utf8, و هذا hack من أيام تصميم ترميز ASCII و ليس طريقة جيدة في الحقيقة :lol:
إذا أردت تطبيق هذا الشيء على utf16 فيجب عليك الأخذ في عين الاعتبار الـ Endianess أو اقرأ BOM إذا كنت تقرأ من ملف على Windows ...
تحياتي ..
السلام عليكم
عاشي الايادي شباب كل الافكار جميلة ولم اكن اعرف البعض منها.
انا حبيت ان اعدل على طريقة من الطرق, وهو اننا نستطيع ان نعمل X_OR مع الرقم 20H مع اي رمز مطلوب تحويلة.
وهو بهذه الحالة سيقوم بالتحويل من صغير الى كبير او من صغير الى كبير.
# include <iostream.h>
# include <conio.h>
main()
{
char ch1 = 'a' ^ 0x20;
char ch2 = 'A' ^ 0x20;
cout << ch1 << "\t" << ch2 ;
getch();
return 0 ;
}تم تعديل هذه المشاركة بواسطة محمد علاء الدين في 2 أغسطس 2010 في 19:08 — السبب: نفسي نلتزم و نستخدم تاج الكود
أجمل طريقة و أروعها هي قليلة جمل البرمجة و سريعة تنفيذ :char(A^32)كما شرح الاخ
Khaled.Alshaya كتب:الطريقة التي أقترحها هي كالتالي,
لو نظرنا لقيمة الحرف 'A' و قيمة الحرف 'a' في نظام ASCII و لكن هذه المرة بالنظام الثنائي :
A = 01000001
a = 01100001
إذا كنت شديد الملاحظة, ستلاحظ أن العددين متطابقين باستثناء الـ Bit السادس, و ذلك هو الحال بالنسبة لبقية الأحرف,
الأحرف الصغير و الكبيرة متطابقة باستثناء الـ Bit السادس, فهو في الأحرف الصغيرة دائماً يساوي 1, بينما في الأحرف الكبيرة يساوي 0.
حسناً ما علينا فعله لتحويل حرف كبير لحرف صغير أو العكس هو قلب ال BIT السادس.
إذا كان صفر نرجعه واحد و إن كان واحدا نرجعه صفرا
و هذا هو بضبط مايقوم بيه هذا سطر : char(A^32).
يعتمد على دالة ^ التي تعمل مباشرة على Bits . و هي دالة كسر المنطقية.
تم تعديل هذه المشاركة بواسطة ikossan في 7 أغسطس 2010 في 16:19
سأتغيب عن المنتدى وستكون لي زيارات خفيفة بين الحين و الحين
يا صاحب الهم إن الهم منفرج.....................أبشر بخير فإن الفارج الله.
اليأس يقطع أحيانا بصاحبه..........................لا تيأس فإن الكافي الله.
الله يحدث بعد العسر ميسرة.........................لا تفزعن فإن الصانع الله.
إذا بليت فثق بالله وارض به...................فإن الذي يكشف البلوى هو الله.
و الله ما لك غير الله من أحد.......................فحسبك الله في كل لك الله
أخوكم مراد
هذا الموضوع مغلق.
المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…