snbb000
دوشنبه 04 شهریور 1392, 10:34 صبح
سلام . دوستان به کد زیر توجه کنید .
#include <stdio.h>
#include <conio.h>
#include <string.h>
void str_cat(char *, char *);
int main()
{
char f[80],t[80];
printf("From : ");
int i ;
for(i = 0 ; (f[i] = getchar())!= '\n';i++)
;
f[i] = '\0';
printf("To : ");
for(i = 0 ; (t[i] = getchar())!= '\n';i++)
;
t[i] = '\0';
str_cat(f,t);
printf("%s",t);
}
void str_cat(char *f,char *t)
{
while(*t)
t++;
for(; (*t = *f) && (*f != '\0') ; f++,t++)
;
*t++ = '\0';
}
من printf("%s",t); رو که توی تابع main مینویسم همه چیز درسته اما اگه همونو توی تابع str_cat به صورت زیر بنویسم
void str_cat(char *f,char *t)
{
while(*t)
t++;
for(; (*t = *f) && (*f != '\0') ; f++,t++)
;
*t++ = '\0';
printf("%s",t);
}
اجرا نمیشه و نتیجه نامشخص داره . میشه بگید دلیلش چیه ؟ و چرا اینطور میشه ؟
ممنون
#include <stdio.h>
#include <conio.h>
#include <string.h>
void str_cat(char *, char *);
int main()
{
char f[80],t[80];
printf("From : ");
int i ;
for(i = 0 ; (f[i] = getchar())!= '\n';i++)
;
f[i] = '\0';
printf("To : ");
for(i = 0 ; (t[i] = getchar())!= '\n';i++)
;
t[i] = '\0';
str_cat(f,t);
printf("%s",t);
}
void str_cat(char *f,char *t)
{
while(*t)
t++;
for(; (*t = *f) && (*f != '\0') ; f++,t++)
;
*t++ = '\0';
}
من printf("%s",t); رو که توی تابع main مینویسم همه چیز درسته اما اگه همونو توی تابع str_cat به صورت زیر بنویسم
void str_cat(char *f,char *t)
{
while(*t)
t++;
for(; (*t = *f) && (*f != '\0') ; f++,t++)
;
*t++ = '\0';
printf("%s",t);
}
اجرا نمیشه و نتیجه نامشخص داره . میشه بگید دلیلش چیه ؟ و چرا اینطور میشه ؟
ممنون