LEthaL
14/05/2003, 23:03
Sorun şöyle while döngülerinin içinde ayrı ayrı karakterleri yazdırınca sorun yok döngülerin bitiminde "%s" diyip yazdırınca sorun var. ve fonksiyon boş değer döndürüyor.
#include <stdio.h>
#include <conio.h>
char *strcat(char *s1, char *s2)
{
char *str;
int i;
/* bu kitaptaki ornek; derlendigi zaman calismayan ise benimkisi.
char *str=s1;
while(*s1 != '\0')
{
++s1;
}
printf("%c",*s1);
while( (*s1++ = *s2++) != '\0')
; */
while(*s1 != '\0')
{
*str = *s1;
printf("%c",*str);
++str;
++s1;
}
// while dongusunde tek tek yazdirmasina ragmen
// alttaki satir neden calismiyor bir turlu cozemedim.
printf("%s",str);
while (*s2 != '\0')
{
*str = *s2;
printf("%c",*str);
++str;
++s2;
}
*str = '\0';
// for dongusude ekrana sadece " " bosluk karakteri yazdiriyor.
for(i=0;i<=12;++i)
printf("%s",str);
return str;
}
int main()
{
clrscr();
char *s;
s = strcat("LEt","haL");
printf("%s",s);
getch();
return 0;
}
Bir de şu katarı ters çevirme yapan fonksiyon çalışmıyor ama neden anlayamadım. Mantığıma göre çalışması lazım ama yok. İnat ediyor çalışmamakta.
#include <stdio.h>
#include <conio.h>
char *terscevir(char *katar)
{
char *yeniKatar;
int i=0,j;
while(*katar != '\0')
{
++i;
++katar;
}
printf("%d",i);
for(j=0;i>0;--i,++j)
yeniKatar[j]=katar[i-1];
yeniKatar[j] = '\0';
printf("%d",j);
return yeniKatar;
}
int main()
{
clrscr();
printf("%s",terscevir("LEthaL"));
getch();
return 0;
}
Sanırım hep aynı yerde yanlış yapıyorum ama bir türlü bulamadım.
#include <stdio.h>
#include <conio.h>
char *strcat(char *s1, char *s2)
{
char *str;
int i;
/* bu kitaptaki ornek; derlendigi zaman calismayan ise benimkisi.
char *str=s1;
while(*s1 != '\0')
{
++s1;
}
printf("%c",*s1);
while( (*s1++ = *s2++) != '\0')
; */
while(*s1 != '\0')
{
*str = *s1;
printf("%c",*str);
++str;
++s1;
}
// while dongusunde tek tek yazdirmasina ragmen
// alttaki satir neden calismiyor bir turlu cozemedim.
printf("%s",str);
while (*s2 != '\0')
{
*str = *s2;
printf("%c",*str);
++str;
++s2;
}
*str = '\0';
// for dongusude ekrana sadece " " bosluk karakteri yazdiriyor.
for(i=0;i<=12;++i)
printf("%s",str);
return str;
}
int main()
{
clrscr();
char *s;
s = strcat("LEt","haL");
printf("%s",s);
getch();
return 0;
}
Bir de şu katarı ters çevirme yapan fonksiyon çalışmıyor ama neden anlayamadım. Mantığıma göre çalışması lazım ama yok. İnat ediyor çalışmamakta.
#include <stdio.h>
#include <conio.h>
char *terscevir(char *katar)
{
char *yeniKatar;
int i=0,j;
while(*katar != '\0')
{
++i;
++katar;
}
printf("%d",i);
for(j=0;i>0;--i,++j)
yeniKatar[j]=katar[i-1];
yeniKatar[j] = '\0';
printf("%d",j);
return yeniKatar;
}
int main()
{
clrscr();
printf("%s",terscevir("LEthaL"));
getch();
return 0;
}
Sanırım hep aynı yerde yanlış yapıyorum ama bir türlü bulamadım.