Reverse Sorusu

“void reverse(char s[])”  tanımında bir fonksiyon yazın. Bu fonksiyona bir string geçirildiğinde, fonksiyonunuz kendisine geçirilmiş harfleri tersine çevirsin.
Yani,  fonksiyonu çağırmadan önce  string’in içinde  “merhaba dünya” varsa, fonksiyondan dönünce string’in içinde artık  “aynüd abahrem” olsun.

Çözümü

#include<stdio.h>
#include<conio.h>

int i,n,birincibardak,ikincibardak,bosbardak;

void reverse(char yazi[100])
{
for(i=0;yazi[n]!=’\0′;n=n+1) ;
for(i=0;i<n/2;i=i+1)
{
/*
bosbardak = birincibardak;
birincibardak = ikincibardak;
ikincibardak = bosbardak;
*/
bosbardak = yazi[n-i-1];
yazi[n-i-1] = yazi[i];
yazi[i] = bosbardak;
}

printf(“%s”,yazi);

}
main()
{ char yazi[100];
printf(“Bir cumle yaz: “); gets(yazi);
reverse(yazi);

getch();
}

Pointer Sorusu

1. Bir karakter dizisi tanımlayın, ve içine “strcpy” ile bilgi koyun. Bir
döngü ve pointer ile diziyi harf-harf (teker teker) ekrana yazın. Programın
başında pointer’i dizinde ilk elemanına atayın, daha sonra çift artı
işareti ile pointer’in değerini arttırın. Ayrı bir tamsayi değişkeni
ile kaç karakter yazılacağını kontrol edin..

Çözümü

#include<stdio.h>
#include<string.h>
#include<conio.h>

main() {

int i=0;
char characterArray[100],*pointer;

strcpy(characterArray,”TEST”);

pointer = &characterArray[0];

for(i;characterArray[i] != ‘\0’;i++) {

printf(“%s \n”,pointer);

pointer++;
}

getch();
}

2. 1. deki programı, pointeri dizinin sonuna atayıp, çift eksi işaretini
kullanarak sondan basa doğru yazması için değiştiriniz.

#include<stdio.h>
#include<string.h>
#include<conio.h>

main() {

int i=3;
char characterArray[100],*pointer;

strcpy(characterArray,”TEST”);

pointer = &characterArray[3];

for(i;characterArray[i] != ‘\0’;i–) {

printf(“%s \n”,pointer);

pointer–;
}

getch();
}