PDA

View Full Version : اشکال در مورد معکوس کردن رشته ورودی



lidaline
جمعه 13 آذر 1388, 20:03 عصر
برنامه ای برای برعکس چاپ کردن ورودی به شکل رشته کاراکتری نوشته ام درضمن انتهای ورودی با فشاردادن دکمه ی اینتر به پایان میرسد لطفا کمکم کنید اشکال زیاد داره به خصوص اینکه من در حلقه ی اول شرط گذاشتم که تا وقتی که اینتر زده نشده ورودی را داخل آرایه بذاره ولی وقتی اینتر زده میشه از حلقه خارج نمیشه چرا؟.چون سر کلاس نبودم واز رشته کاراکتر هم هیچ چیزی یاد نگرفتم کد برنامه اینه لطفا اشکالامو بگید کجاست

#include<stdio.h>
#include<conio.h>
void main()
{
int i;
char str[1000];
str[0] = '\0';
str[1] = getche();
for (i=2; str[i] !='\r';i++)
{
str[i]= getche();
}
str[i]='\0';
for (i ;;i--)
{
printf ("\n%c",str[i]);
}
}

Altech
جمعه 13 آذر 1388, 22:57 عصر
این برنامه این کارو براتون می کنه :


#include<stdio.h>
#include<conio.h>
void main()
{
int i;
char str[1000];

for (i=0;;i++)
{
str[i]= getchar();
if(str[i]=='\n')
break;
}
str[i+1]='\0';

for( int j = i; j >=0 ; j-- )
printf("%c",str[j]);
}

lidaline
جمعه 13 آذر 1388, 23:46 عصر
از پاسختون خیلی ممنونم در واقع اشکالهام رو متوجه شدم ولی فقط اینو نفهمیدم که همین برنامه که جناب altech زحمتش رو کشیدن چرا وقتی به جای getchar دستور getche رو میذاریم برنامه اجرا نمیشه؟ اگه لطف کنید جوابمو بدید متشکر میشم وهمینطور چرا در این قسمت به جای کد اینتر یعنی
'\r' کد سطر جدید یعنی
'\n' رو میذاریم مگه زدن دکمه ی اینتر با بک اسلش آر مشخص نمیشه واسه کامپایلر؟ یادمه تا اینجا تو هر برنامه از این کد استفاده کردم

Altech
شنبه 14 آذر 1388, 01:38 صبح
از پاسختون خیلی ممنونم در واقع اشکالهام رو متوجه شدم ولی فقط اینو نفهمیدم که همین برنامه که جناب altech زحمتش رو کشیدن چرا وقتی به جای getchar دستور getche رو میذاریم برنامه اجرا نمیشه؟ اگه لطف کنید جوابمو بدید متشکر میشم وهمینطور چرا در این قسمت به جای کد اینتر یعنی
'\r' کد سطر جدید یعنی
'\n' رو میذاریم مگه زدن دکمه ی اینتر با بک اسلش آر مشخص نمیشه واسه کامپایلر؟ یادمه تا اینجا تو هر برنامه از این کد استفاده کردم

برای اینکه getche مهلت نمیده که Enter زده بشه و قبل از زدن Enter خودش کاراکتر رو ثبت می کنه .
ضمنا r\ میره به ابتدای خط فعلی نه خط جدید . Enter همون n\ هست .