امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
حلقه.كمك.
نویسنده پیام
sh_teta آفلاین
كاربر دو ستاره
**

ارسال‌ها: 113
موضوع‌ها: 38
تاریخ عضویت: اردیبهشت ۱۳۸۵

تشکرها : 0
( 3 تشکر در 1 ارسال )
ارسال: #1
حلقه.كمك.
اين كد رو ببينيد:
char str[20];
int i;
for (i = 0; str[i];i++)
قسمتي رو كه قرمز كردم محل نوشتن شرط حلقست درست؟
ولي اين عبارت شرطي نيست(str[i]).و كد كار مي كنه.من نمي فهمم چجوري
اين هم كل كد:



#include <stdio.h>
#include <conio.h>
int main()
{
int n=0,n2[50],i;
char ch,str[50];
gets(str);
printf("type the char to search");
ch = getche();
for (i=0;str[i];i++){
if (str[i] == ch){
n2[i] = ch;
n = i;
printf("%d ",n+1);
}
}
printf("| | %d",n+1);
getch();
return 0;
}
۲۵-شهریور-۱۳۸۵, ۰۰:۴۱:۵۵
ارسال‌ها
پاسخ
Mamad2003 آفلاین
کاربر با تجربه
****

ارسال‌ها: 1,150
موضوع‌ها: 18
تاریخ عضویت: آذر ۱۳۸۲

تشکرها : 9
( 388 تشکر در 232 ارسال )
ارسال: #2
RE: حلقه.كمك.
چرا شرط نیست ؟؟؟ دقیقا برابر اینه :  '0\'=! [str[i
توی حلقه و در بخش شرط ، حاصل شرط باید همیشه True باشه و برابر با False نباشه . حالا توی زبان سی صفر چیه همون False هست دیگه . پس وجود صفر عددی = False بودن = وجود NULL .
ثانیا انتهای هر String توی C یک NULL هست . حالا NULL چیه ؟؟ همون صفره عددیه ( نه رشته ای یا ASCII که کدش 48 هست بلکه صفر در مبنای 10)
برای اینکه کامپایلر اینو بفهمه که کد اسکی NULL صفر هست (اولین عضو جدول اسکی رو نگاه کن ) و یک موقع کد اسکی عدد 0 ( که کد ASCII اش 48 هست و به عنوان قسمتی از رشته محسوب میشه ) رو جاش اشتباهی فرض نکنه  ، در محاسبات رشته ای یک \ قبلش میزارن تا صفر عددی با صفر ASCII از هم متمایز بشن .

حالا وقتی شما توی بخش شرط مینویسی [str[i یعنی چی ؟ یعنی اینکه تا زمانی که [str[i برابر True باشه یا [str[i برابر False نباشه . اینو میشه نوشت [str[i برابر Null نباشه . پس برای اینه که تا زمانی که [str[i شما NULL نشه شرط حلقه همیشه برقراه ( True هست ) و بکار خودش ادامه میده ! Smile

گويند بهشت و حور و کوثر باشد  ..  جوي می و شير و شهد و شکر باشد
پر کن قدح باده و بر دستم نه      ..   نقدي ز هزار نسيه خوشتر باشد  
(آخرین ویرایش در این ارسال: ۲۵-شهریور-۱۳۸۵, ۰۲:۱۵:۵۵، توسط Mamad2003.)
۲۵-شهریور-۱۳۸۵, ۰۱:۳۳:۱۸
ارسال‌ها
پاسخ
sh_teta آفلاین
كاربر دو ستاره
**

ارسال‌ها: 113
موضوع‌ها: 38
تاریخ عضویت: اردیبهشت ۱۳۸۵

تشکرها : 0
( 3 تشکر در 1 ارسال )
ارسال: #3
RE: حلقه.كمك.
مرسي
گرفتم
۲۵-شهریور-۱۳۸۵, ۱۳:۰۲:۲۶
ارسال‌ها
پاسخ


پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS