PDA

View Full Version : یک سئوال در مورد توابع



Abolfazl009
سه شنبه 28 آذر 1391, 09:44 صبح
سلام.
میشه واسه اون قسمت از کد زیر رو که قرمز کردم، توضیح بدین؟ اگه میشه دقیق توضیح بدین که منظور از این شرط داخل این حلقه چیه!

for(i=0;i<=strlen(name)-1;i++)

fati63
سه شنبه 28 آذر 1391, 12:51 عصر
تابع strlen طول رشته name را بر میگردونه

Abolfazl009
سه شنبه 28 آذر 1391, 13:06 عصر
تابع strlen طول رشته name را بر میگردونه

در این حدشو میدونم. کاملتر میخوام و دلیل استفاده از 1-

Abolfazl009
سه شنبه 28 آذر 1391, 13:43 عصر
من جواب سئوالمو پیدا کردم.
فقط چند سئوال دیگه!
1- توی این برنامه، چرا باید به X و Y مقدار اولیه بدیم؟
2- چرا باید مقدار اولیه رو 1 بدیم؟
3- چرا strlen(name) رو منهای 1 کردیم؟

char name[256];
gets(name);
int i,j,x=1,y=1;
for(i=0;i<=strlen(name)-1;i++)
{
if(name[i]==' ')
{
x++;
}
}
for(j=0;j<=strlen(name)-1;j++)
{
if(name[j]=='.')
{
y++;
}

}

Hybrid
سه شنبه 28 آذر 1391, 14:59 عصر
در این حدشو میدونم. کاملتر میخوام و دلیل استفاده از 1-
سلام ، دلیل استفاده از 1- اینه که اندیس آرایه ها از صفر شروع میشه .

#target
سه شنبه 28 آذر 1391, 15:01 عصر
منهای یک : strlen طول رشته رو میده . رشته ذخیره شده ی بایت هم داره آخرش برا پایان که Null یا صفر قرار میگیره
فرض کنیم رشته 60 کاراکتریه . اونوقت تو حافظه 60 بایت رشته هست.
منهای یک میکنیم . چون به اون به صورت آرایه دسترسی پیدا کردیم و آزایه از صفر شروع میشه . 60 منهای یک میشه 59 که اگه شمارش رو از صفر شروع کنیم 59 امی میشه بایت شصتم !!!!

مقدار یک به X , Y که فرض کردیم حداقل ی کلمه یا ی جمله وجود داره !