Deqarnieux
Hectopat
- Katılım
- 11 Ocak 2021
- Mesajlar
- 131
- Çözümler
- 1
Daha fazla
- Cinsiyet
- Erkek
Merhaba. Yazdığım kodda işlemlerin sonunda kodu başa alarak işlemleri tekrar etmesini istiyorum ama bir türlü beceremedim.
Goto kullanmadan, değer döndüren bir fonksiyon ile yapmam lazım.
Goto kullanmadan, değer döndüren bir fonksiyon ile yapmam lazım.
Kod:
#include <stdio.h>
int my_strlen(char s1[])
{
int a=0;
int b=0;
for (a=0; s1[a]!= '\0' ;++a)
{
b++;
}
return b;
}
char* my_strcpy(char s1[], char s2[])
{
int a=0;
for(;a<my_strlen(s1);++a)
{
s1[a]=s2[a];
}
return s1;
}
int my_strcmp(char s1[],char s2[])
{
int a=0;
int b;
if(my_strlen(s1)!=my_strlen(s2))
{
return -1;
}
else
{
for(;a<my_strlen(s1);++a)
{
if(s1[a]==s2[a])
{
b=0;
}
else
{
return -1;
}
}
return b;
}
}
char* my_strcat(char s1[],char s2[])
{
int a;
int b=my_strlen(s1);
for(a=0;a<my_strlen(s2);++a)
{
s1=s2[a];
b+=1;
}
return s1;
}
char* my_strncat(char s1[],char s2[],int n)
{
int a;
int b=my_strlen(s2);
for(a=0;a!=n;++a)
{
s2=s1[a];
b+=1;
}
return s2;
}
void son(){
printf("Islem sonlanmistir.\n");
}
int main()
{
char s1[]= "anime";
char s2[]= "kitap";
int f;
int k;
int p;
printf("1-Dizilerin kac harften olustugunu gosterir.\n");
printf("2-s2 dizisini s1 dizisine kopyalar.\n");
printf("3-s1 dizisi ile s2 dizisini karsilastirir.\n");
printf("4-s2 dizisini s1 dizininin sonuna ekler.\n");
printf("5-s1 dizisini 5 harften fazla olmayacak sekilde s2 dizisine ekler.\n");
printf("istediginiz islemi seciniz.\n");
scanf("%d",&f);
if (f==1)
{
goto bir;
}
else if (f==2)
{
goto iki;
}
else if (f==3)
{
goto uc;
}
else if (f==4)
{
goto dort;
}
else
{
goto bes;
}
bir:
printf("1. dizide %d tane harf var.\n2. dizide %d tane harf var.\n",my_strlen(s1),my_strlen(s2));
printf("Baska islem yapmak istiyormusunuz.\nEvet=1 Hayir=2\n");
scanf("%d",&p);
if (p==1)
{
}
else if (p==2)
{
son();
return 0;
}
iki:
my_strcpy(s1,s2);
printf("1. dizi = %s\n",s1);
printf("Baska islem yapmak istiyormusunuz.\nEvet=1 Hayir=2\n");
scanf("%d",&p);
if (p==1)
{
}
else if (p==2)
{
son();
return 0;
}
uc:
if(my_strcmp(s1,s2)==0)
{
printf("Islem sonucu %d diziler esittir.\n",my_strcmp(s1,s2));
}
else
{
printf("Islem sonucu %d diziler farklidir.\n",my_strcmp(s1,s2));
}
printf("Baska islem yapmak istiyormusunuz.\nEvet=1 Hayir=2\n");
scanf("%d",&p);
if (p==1)
{
}
else if (p==2)
{
son();
return 0;
}
dort:
my_strcat(s1,s2);
printf("1. Dizi = %s\n",s1);
printf("Baska islem yapmak istiyormusunuz.\nEvet=1 Hayir=2\n");
scanf("%d",&p);
if (p==1)
{
}
else if (p==2)
{
son();
return 0;
}
bes:
printf("1. Dizinin kac harfi s2 Dizisine eklensin.\n5 harfi gecemez.\n");
scanf("%d",&k);
my_strncat(s1,s2,k);
printf("2. Dizi = %s\n",s2);
printf("Baska islem yapmak istiyormusunuz.\nEvet=1 Hayir=2\n");
scanf("%d",&p);
if (p==1)
{
}
else if (p==2)
{
son();
return 0;
}
return 0;
}
Son düzenleyen: Moderatör: