مكتبة ctype
isdigit وisalpha وtoupper
مكتبة ctype درس مجاني في C Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في C Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة C Academy 4 دروس في المجموع.
ما هو ctype.h
يوفر الترويسة <ctype.h> دوالًا لتصنيف المحارف وتحويلها.
وتغنيكم عن حفظ نطاقات ASCII وكتابة مقارنات يدوية.
#include <stdio.h>
#include <ctype.h>
int main(void) {
printf("Is 'A' alpha? %d\n", isalpha('A'));
return 0;
}isdigit
تعيد isdigit(c) قيمة غير صفرية إذا كان c محرف رقم من '0'-'9'، وتعيد 0 خلاف ذلك.
#include <stdio.h>
#include <ctype.h>
int main(void) {
printf("isdigit('7') = %d\n", isdigit('7'));
printf("isdigit('x') = %d\n", isdigit('x'));
return 0;
}isalpha
تعيد isalpha(c) قيمة غير صفرية إذا كان c حرفًا، سواء أكان كبيرًا أم صغيرًا.
أما الأرقام والرموز فتعيد الدالة 0.
#include <stdio.h>
#include <ctype.h>
int main(void) {
printf("isalpha('G') = %d\n", isalpha('G'));
printf("isalpha('3') = %d\n", isalpha('3'));
return 0;
}isalnum و isspace
تكون isalnum(c) صحيحة للحروف أو الأرقام. وتكون isspace(c) صحيحة للمحارف البيضاء مثل المسافة وعلامة الجدولة والسطر الجديد.
#include <stdio.h>
#include <ctype.h>
int main(void) {
printf("isalnum('9') = %d\n", isalnum('9'));
printf("isspace(' ') = %d\n", isspace(' '));
printf("isspace('a') = %d\n", isspace('a'));
return 0;
}isupper و islower
تختبر isupper(c) ما إذا كان المحرف حرفًا كبيرًا، بينما تختبر islower(c) ما إذا كان حرفًا صغيرًا.
وتفيد هاتان الدالتان قبل اتخاذ قرار تحويل حالة الحرف.
#include <stdio.h>
#include <ctype.h>
int main(void) {
printf("isupper('A') = %d\n", isupper('A'));
printf("islower('A') = %d\n", islower('A'));
return 0;
}ispunct
تعيد ispunct(c) قيمة غير صفرية لمحارف علامات الترقيم القابلة للطباعة مثل ! و? و,، ما دامت ليست حروفًا أو أرقامًا أو مسافات.
#include <stdio.h>
#include <ctype.h>
int main(void) {
printf("ispunct('!') = %d\n", ispunct('!'));
printf("ispunct('a') = %d\n", ispunct('a'));
return 0;
}toupper
تعيد toupper(c) النسخة الكبيرة من الحرف. وإذا لم يكن c حرفًا صغيرًا، تعيده دون تغيير.
#include <stdio.h>
#include <ctype.h>
int main(void) {
printf("%c\n", toupper('h'));
printf("%c\n", toupper('5'));
return 0;
}tolower
تعيد tolower(c) النسخة الصغيرة من الحرف الكبير، أو تعيد المحرف دون تغيير إذا لم يكن كبيرًا.
#include <stdio.h>
#include <ctype.h>
int main(void) {
printf("%c\n", tolower('H'));
printf("%c\n", tolower('z'));
return 0;
}تصنيف سلسلة نصية
كرروا على محارف سلسلة نصية، واستخدموا دوال ctype لعدّ الأرقام والحروف.
#include <stdio.h>
#include <ctype.h>
int main(void) {
char *s = "abc123";
int letters = 0, digits = 0;
for (int i = 0; s[i]; i++) {
if (isalpha(s[i])) letters++;
if (isdigit(s[i])) digits++;
}
printf("letters=%d digits=%d\n", letters, digits);
return 0;
}تحويل سلسلة كاملة إلى أحرف كبيرة
ادمجوا toupper مع حلقة لتحويل سلسلة كاملة إلى أحرف كبيرة، محرفًا تلو الآخر.
#include <stdio.h>
#include <ctype.h>
int main(void) {
char s[] = "Hello";
for (int i = 0; s[i]; i++) {
s[i] = toupper(s[i]);
}
printf("%s\n", s);
return 0;
}مرّروا int لا char سالبًا
تتلقى دوال ctype قيمة من النوع int، ويجب أن تكون قابلة للتمثيل بوصفها unsigned char أو أن تكون EOF.
تمرير char سالب مباشرةً يؤدي إلى سلوك غير معرّف. عند الشك، حوّلوا القيمة إلى unsigned char.
#include <stdio.h>
#include <ctype.h>
int main(void) {
char c = 'Q';
int result = isalpha((unsigned char)c);
printf("safe isalpha = %d\n", result);
return 0;
}اختبار سريع
اختبروا معرفتكم بمكتبة ctype.
مراجعة
تتيح لكم مكتبة <ctype.h> ما يلي:
- التصنيف باستخدام
isdigitوisalphaوisalnumوisspaceوispunctوisupperوislower. - التحويل باستخدام
toupperوtolower. - مرّروا دائمًا قيمًا محوّلة إلى
unsigned charلتجنب السلوك غير المعرّف.
الأسئلة الشائعة
هل درس «مكتبة ctype» مجاني؟
نعم — نص درس «مكتبة ctype» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة C Academy، انتقل إلى CoddyKit PRO. تتضمن دورة C Academy 4 دروس في المجموع.
ماذا ستتعلم في «مكتبة ctype»؟
isdigit وisalpha وtoupper تتمرن على C Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ C Academy؟
لا تُشترط خبرة سابقة. C Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.
كم من الوقت يستغرق درس «مكتبة ctype»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس C Academy هذا؟
نعم. كل درس في C Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.