السلام عليكم
هذا البرنامج الفريد (كود):
#include <stdio.h>
#include <string.h>
int main()
{
char str[]="- This, a sample string.";
char pch;
printf("Splitting string \"%s\"into tokens:\n",str);
pch=strtok(str," ,.-");
while(pch!=NULL)
{
printf("%s\n",pch);
pch=strtok(NULL," -,.");
}
return 0;
كالعادة سوف أقوم بطرح الأسئلة وأتمنى أن أجد الإجابة:
س1:
[code]char str[]="- This, a sample string.";}
char str[]="- This, a sample string.";
مفهومة مصفوفة دينماكية :lol:
char *pch;
ممم مؤشر من نوع char ? كلامي صحيح أم لا؟
pch=strtok(str," ,.-");
أعتقد إنه هذه الدالة تقوم بحذف العلامات العلامات الموجودة في الوسيط الثاني؟وهل لها وضائف أخرى؟
while(pch!=NULL)
عاوز تفسير منطقي
لإني لا أعرف الـpch كم يساوي؟ وكيف تكون أصلا NULL أليس المصفوفات هي التي نسمع عنها كلمة NULL دائما؟
pch=strtok(NULL," -,.");
لماذا أضفنا هذا السطر ونحن في آخر رمق من البرنامج
وطبعا الـOUTPUT هو:
اقتباسSplitting string "- This, a sample string." into tokens:This
a
sample
string
=================
سؤال خارج هذا الكود:
س:
if(strcmp(line,"/"))
{
printf("Hello.\n");
}هل كل الدوال لها قيمة عودة واحدة ,, يعني مين يستطيع أن يفسر لي السطر الأول ,, لإني معتاد على أنا أرى ==0 أو <=0 عند الأسطر اللتي يتواجد بها IF ???
أتمنى أن تكونوا قد أجبتموني على هذه الإسئلة .. ولكن آخر سؤال لدي هو:
لماذا كتبنا في السطر هذا:
char *pch;
لماذا جعلنا pch مؤشر من نوع char?
ولماذا لم نجعله متغير من نوع char ؟ وماذا لو لو جعلناه متغير من نوع char
يعني.. متى أخلي pch(أو اي اسم عندي) متغير أو مؤشر؟
وسلامي.

