sajjadrad
سه شنبه 04 خرداد 1389, 19:20 عصر
سلام من تو یه کتاب خوندم که کاراکتر نول
\0
اگه تو هر خونه آرایه رشته باشه رشته اونجا تموم میشه.من یه تابع نوشتم که تا وقتی که کاراکتر '?' در پایان جمله ذکر نشده به خوندن آرایه ادامه میده.من میخوام وقتی اون کلمه کمتر از تعداد خونه های آرایه بود خونه های بعد از اون همه تهی بشن.
توی تابع زیر من یه آرایه 10 خونه ای تعریف کردم .فرض کنیم برای ورودی مقدار sajjad? وارد بشه.مشکل اینجاست که تابع 2 کاراکتر آخر رو زباله چاپ میکنه...
6 کاراکتر sajjad و یک کاراکتر ? و یه خونه هم نول...نمیدونم چرا بعد نول رو بازم میخونه....مشکل از کجاست؟
void read(char a[])
{
for (int i=0;i<10;i++)
{
cin>>a[i];
if (a[i]=='?')
{
a[i+1]='\0';
break;
}
}
}
\0
اگه تو هر خونه آرایه رشته باشه رشته اونجا تموم میشه.من یه تابع نوشتم که تا وقتی که کاراکتر '?' در پایان جمله ذکر نشده به خوندن آرایه ادامه میده.من میخوام وقتی اون کلمه کمتر از تعداد خونه های آرایه بود خونه های بعد از اون همه تهی بشن.
توی تابع زیر من یه آرایه 10 خونه ای تعریف کردم .فرض کنیم برای ورودی مقدار sajjad? وارد بشه.مشکل اینجاست که تابع 2 کاراکتر آخر رو زباله چاپ میکنه...
6 کاراکتر sajjad و یک کاراکتر ? و یه خونه هم نول...نمیدونم چرا بعد نول رو بازم میخونه....مشکل از کجاست؟
void read(char a[])
{
for (int i=0;i<10;i++)
{
cin>>a[i];
if (a[i]=='?')
{
a[i+1]='\0';
break;
}
}
}