cloner11
پنج شنبه 19 دی 1392, 15:41 عصر
با سلام من میخوام برنامه ای بنویسم که یک رشته بگیره و برعکس چاپ کنه ولی دوتا مشکل برخوردم.
برنامه :
#include <stdio.h>
#include <conio.h>
void main()
{
char p[20];
int i;
scanf("%s", p);
for(i = 0; p[i+1] != NULL; i++)
;
for(; i>=0; i--)
printf("%c", p[i]);
printf("\n");
getch();
}
مشکل اول این که اگر علامت;بین دو حلقه for رو نذارم برنامه بینهایت کارکتر اول رشته رو چاپ میکنه! دلیلش چیه؟
مشکل دوم اگر بین حروف رشته فاصله بزارم از اون جا به بعد رو حساب نمیکنه یعنی اگر بزنم 456 123
چاپ میکنه:
321
برنامه :
#include <stdio.h>
#include <conio.h>
void main()
{
char p[20];
int i;
scanf("%s", p);
for(i = 0; p[i+1] != NULL; i++)
;
for(; i>=0; i--)
printf("%c", p[i]);
printf("\n");
getch();
}
مشکل اول این که اگر علامت;بین دو حلقه for رو نذارم برنامه بینهایت کارکتر اول رشته رو چاپ میکنه! دلیلش چیه؟
مشکل دوم اگر بین حروف رشته فاصله بزارم از اون جا به بعد رو حساب نمیکنه یعنی اگر بزنم 456 123
چاپ میکنه:
321