Dersler

View on GitHub

EEM-120 Algoritma ve Programlama II Dersi

Karakter Dizileri (Stringler)

#include <stdio.h>
int main() {
	char a;
	printf("char turunun bellekteki boyutu: %d\n",sizeof(a));
	a=120;
	printf("a: %d\n",a);
	printf("a: %c\n",a);

	a='a';
	printf("a: %d\n",a);
	printf("a: %c\n",a);

	a=110;
	printf("a: %d\n",a);
	printf("a: %c\n",a);

	a=60;
	printf("a: %d\n",a);
	printf("a: %c\n",a);
    return 0;
} 
    char turunun bellekteki boyutu: 1
    a: 120
    a: x
    a: 97
    a: a
    a: 110
    a: n
    a: 60
    a: <
#include <stdio.h>
int main() {
	char a[11]="abcdefghij";
	a[4]='\0';
	printf("%s",a);
}
    abcd
#include <stdio.h>
int main() {
	char a[11]={'x','y','z'};
	int i;
	for(i=0;a[i]!='\0';i++)
		printf("%c:%d ",a[i],a[i]);
	printf("\n%s",a);
}
    x:120 y:121 z:122 
    xyz
#include <stdio.h>
int main() {
	char a[11]="xyzz";
	int i;
	for(i=0;a[i]!='\0';i++)
		printf("%c:%d ",a[i],a[i]);
	printf("\n%s",a);
}
    x:120 y:121 z:122 z:122 
    xyzz
#include <stdio.h>
int main() {
	char a[11]="xyzabc";
	char *p;
	for(p=a;*p!='\0';p++)
		printf("%c-",*p);
	
}
    x-y-z-a-b-c-
#include <stdio.h>
int main() {
	char a[11]="xyzabc";
	char *p;
	a[1]='1';
	a[3]='2';

	for(p=a;*p!='\0';p++)
		printf("%c-",*p);
	printf("\n%s",a);
	
}
    x-1-z-2-b-c-
    x1z2bc
#include <stdio.h>
int main() {
	char a[11]="xyzabc";
	printf("%10s\n",a);
	printf("%.4s\n",a);
	
} 
        xyzabc
    xyza
#include <stdio.h>
int main() {

	char str[11];
	printf("bir metin giriniz: ");
	scanf("%s",str);
	printf("girilen metin: %s",str);
			
}
    bir metin giriniz: 

     abcdefghi


    girilen metin: abcdefghi
#include <stdio.h>
int main() {
	char a[11];
	printf("bir metin giriniz: ");
	gets(a);
	printf("girilen metin: %s",a);
	
} 
#include <stdio.h>
int main() {
	char a[10];
	printf("bir metin giriniz: ");
	gets(a);
	printf("girilen metin: %s",a);
	
}
#include <stdio.h>
int main() {
	char a[5];
	char ch;
	int i=0;
	printf("bir metin giriniz: ");
	
	while((ch=getchar())!='\n'){
		if(i<4)
			a[i++]=ch;
	}
	a[i]='\0';

	printf("girilen metin: %s",a);	
}
#include <stdio.h>
#define N 50
int main() {
	char a[N];
	int i, bosluk=0;
	
	printf("bir metin giriniz: ");
	gets(a);

	for(i=0;a[i]!='\0';i++)
		if(a[i]==' ')
			bosluk++;

	printf("metindeki bosluk sayisi: %d",bosluk);	
} 
#include <stdio.h>
#define N 50

int bosluklari_say(char str[]){
	int bosluk=0,i;
	for(i=0;str[i]!='\0';i++)
		if(str[i]==' ')
			bosluk++;
	return bosluk;
}
int main() {
	char a[N];
	int i, bosluk=0;
	printf("bir metin giriniz: ");
	gets(a);
	printf("metindeki bosluk sayisi: %d",bosluklari_say(a));	
}
#include <stdio.h>
#define N 50

int bosluklari_say(char str[]){
	int bosluk=0,i;
	for(i=0;str[i]!='\0';i++)
		if(str[i]==' ')
			bosluk++;
	str[3]='a';
	return bosluk;
}
int main() {
	char a[N];
	int i, bosluk=0;
	printf("bir metin giriniz: ");
	gets(a);
	printf("metindeki bosluk sayisi: %d\n",bosluklari_say(a));	

	printf("metin: %s",a);
}
#include <stdio.h>
#define N 50

int bosluklari_say(const char str[]){
	int bosluk=0,i;
	for(i=0;str[i]!='\0';i++)
		if(str[i]==' ')
			bosluk++;
	//str[3]='a';
	return bosluk;
}
int main() {
	char a[N];
	int i, bosluk=0;
	printf("bir metin giriniz: ");
	gets(a);
	printf("metindeki bosluk sayisi: %d\n",bosluklari_say(a));	

	printf("metin: %s",a);
}
#include <stdio.h>
#define N 50

int bosluklari_say(const char str[]){
	int bosluk=0;
	
	for(;*str!='\0';str++)
		if(*str==' ')
			bosluk++;
	return bosluk;
}
int main() {
	char a[N];
	int i, bosluk=0;
	printf("bir metin giriniz: ");
	gets(a);
	printf("metindeki bosluk sayisi: %d\n",bosluklari_say(a));	

	printf("metin: %s",a);
}
#include <stdio.h>
#define N 50

int main() {
	char a[N]="abc def", b[N];
	int i;
	for(i=0;a[i]!='\0';i++)
		b[i]=a[i];
	b[i]='\0';

	printf("b stringi: %s",b);
	
	
}
    b stringi: abc def
#include <stdio.h>
#include <string.h>
#define N 50
int main() {
	char a[N]="abc def", b[N];
	strcpy(b,a);
	printf("b stringi: %s",b);	
} 
    b stringi: abc def
#include <stdio.h>
#include <string.h>
#define N 50
void string_kopyala(char hedef[], const char kaynak[]){
	for(;*kaynak!='\0';kaynak++, hedef++)
		*hedef=*kaynak;
}
int main() {
	char a[N]="abc def", b[N];
	strcpy(b,a);
	printf("b stringi: %s",b);	
}
    b stringi: abc def
#include <stdio.h>
#define N 20
int main() {

	char a[N];
	int i, uzunluk=0;
	printf("bir metin giriniz: ");
	gets(a);
	for(i=0;a[i]!='\0';i++)
		uzunluk++;
	printf("girilen metnin uzunlugu: %d", uzunluk);
	

} 
#include <stdio.h>
#define N 20


int main() {

	char a[N];
	int i;
	printf("bir metin giriniz: ");
	gets(a);
	for(i=0;a[i]!='\0';i++);	
	printf("girilen metnin uzunlugu: %d", i);
	

} 
#include <stdio.h>
#define N 20

int uzunluk(char kar_dizisi[]){
	int i;
	for(i=0;kar_dizisi[i]!='\0';i++);
	return i;	
}

int main() {
	char a[N];
	printf("bir metin giriniz: ");
	gets(a);
	printf("girilen metnin uzunlugu: %d", uzunluk(a));
	

} 
#include <stdio.h>
#include <string.h>
#define N 20
int main() {
	char a[N];
	printf("bir metin giriniz: ");
	gets(a);
	printf("girilen metnin uzunlugu: %d", strlen());

} 
#include <stdio.h>
#include <string.h>
#define N 20

int uzunluk(const char *str){
	int i=0;
	for(;*str!='\0';str++,i++);
	return i;
}

int main() {
	char a[N];
	printf("bir metin giriniz: ");
	gets(a);
	printf("girilen metnin uzunlugu: %d", uzunluk(a));

} 

Döngülerde 0 durumunun kontrol edilmesi

#include <stdio.h>

int main(){
    int i=10;
    while(i>0){
        printf("%d ",i);
        i--;
    }
    
    return 0;
}
10 9 8 7 6 5 4 3 2 1 
#include <stdio.h>

int main(){
    int i=15;
    while(i)
        printf("%d ",i--);
    
    return 0;
}
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 
#include <stdio.h>

int main(){
    int i;
    for(i=15;i;i--)
        printf("%d ",i);
    
    return 0;
}
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 

string uzunluğu ile ilgili örnekler

#include <stdio.h>

int main(){
    char a[100]="bu bir metindir.";
    int n;
    
    for(n=0;a[n]!='\0';n++);
    printf("%s \nstringinin uzunluğu: %d",a, n);
    
    return 0;
}
bu bir metindir. 
stringinin uzunluğu: 16
#include <stdio.h>

int main(){
    char a[100]="bu bir metindir1.";
    char *p;
    int n;
    
    for(n=0, p=a; *p!='\0'; n++, p++);
    
    printf("%s \nstringinin uzunluğu: %d",a, n);
    
    return 0;
}
bu bir metindir1. 
stringinin uzunluğu: 17
#include <stdio.h>

int main(){
    char a[100]="bu bir metindir12.";
    char *p=a;
    int n=0;
    while(*p!='\0'){
        n++;
        p++;
    }
    
    printf("%s \nstringinin uzunluğu: %d",a, n);
    
    return 0;
}
bu bir metindir12. 
stringinin uzunluğu: 18
#include <stdio.h>

int main(){
    char a[100]="bu bir metindir123.";
    char *p=a;
    int n=0;
    while(*p++)
        n++;
    
    
    printf("%s \nstringinin uzunluğu: %d",a, n);
    
    return 0;
}
bu bir metindir123. 
stringinin uzunluğu: 19
#include <stdio.h>
int uzunluk(const char *s){
    int n=0;
    while(*s++)
        n++;
    return n;
}
int main(){
    char a[100]="bu bir metindir1234.";
    
    printf("%s \nstringinin uzunluğu: %d",a, uzunluk(a));
    
    return 0;
}
bu bir metindir1234. 
stringinin uzunluğu: 20
#include <stdio.h>
int uzunluk(const char *s){
    int n;
    for(n=0;*s;s++,n++);
    return n;
}
int main(){
    char a[100]="bu bir metindir12345.";
    
    printf("%s \nstringinin uzunluğu: %d",a, uzunluk(a));
    
    return 0;
}
bu bir metindir12345. 
stringinin uzunluğu: 21
#include <stdio.h>
int uzunluk(const char *s){
    int n=0;
    for( ;*s++; )
        n++;
    return n;
}
int main(){
    char a[100]="bu bir metindir123456.";
    
    printf("%s \nstringinin uzunluğu: %d",a, uzunluk(a));
    
    return 0;
}
bu bir metindir123456. 
stringinin uzunluğu: 22
#include <stdio.h>
int uzunluk(const char *s){
    const char *p=s;
    while(*s)
        s++;
    return s-p;
}
int main(){
    char a[100]="bu bir metindir1234567.";
    
    printf("%s \nstringinin uzunluğu: %d",a, uzunluk(a));
    
    return 0;
}
bu bir metindir1234567. 
stringinin uzunluğu: 23
#include <stdio.h>
int uzunluk(const char *s){
    const char *p=s;
    while(*s++);
    return s-p-1;
}
int main(){
    char a[100]="bu bir metindir12345678.";
    
    printf("%s \nstringinin uzunluğu: %d",a, uzunluk(a));
    
    return 0;
}
bu bir metindir12345678. 
stringinin uzunluğu: 24

string birleştirme örnekleri

#include <stdio.h>

int main(){
    char a[10]="abc1234";
    char b[10]="cde234";
    char c[20];
    int i, j;
    for(i=0;a[i]!='\0';i++)
        c[i]=a[i];
    for(j=0;b[j]!='\0';j++, i++)
        c[i]=b[j];
    
    c[i]='\0';
    printf("%s",c);

    return 0;
}
abc1234cde234
#include <stdio.h>

int main(){
    char a[10]="abc1234";
    char b[10]="cde234";
    char c[20];
    char *p, *q;
    
    for(p=a, q=c; *p; p++, q++)
        *q=*p;
    
    for(p=b; *p; p++, q++)
        *q=*p;
    *q='\0';
    

    printf("%s",c);

    return 0;
}
abc1234cde234
#include <stdio.h>

int main(){
    char a[20]="abc1234";
    char b[10]="cde234";
    
    char *p, *q;
    for(p=a; *p; p++);
        
    for(q=b; *q; p++, q++)
        *p=*q;
    *p='\0';
    
    printf("%s",a);

    return 0;
}
abc1234cde234
#include <stdio.h>

char *birlestir(char *str1, const char *str2){
    char *p=str1;
    while(*p!='\0')
        p++;
    while(*str2!='\0'){
        *p=*str2;
        str2++;
        p++;
    }
    *p='\0';
    return str1;
}

int main(){
    char a[20]="abc1234";
    char b[10]="cde234";
    
    printf("%s",birlestir(a,b));

    return 0;
}
abc1234cde234
#include <stdio.h>

char *birlestir(char *str1, const char *str2){
    char *p=str1;
    while(*p) p++;
    while((*p++ = *str2++));
    return str1;
}

int main(){
    char a[20]="abc1234";
    char b[10]="cde234";
    
    printf("%s",birlestir(a,b));

    return 0;
}
abc1234cde234

string karşılaştırma

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

int main(){
    char a[10]="abc";
    char b[10]="abc";
    printf("abc-abc: %d\n",strcmp(a,b));
    //a="abd";
    strcat(a,"abd");
    printf("abd-abc: %d\n",strcmp(a,b));
    //b="abe";
    strcat(b,"abe");
    printf("abd-abe: %d\n",strcmp(a,b));
    

    return 0;
}
abc-abc: 0
abd-abc: 97
abd-abe: -1

string dizileri

#include <stdio.h>

int main(){
    char gezegenler[9][15]={"Merkur","Venus","Dunya","Mars",
                            "Jupiter","Neptun","Uranus","Saturn", "Pluton"};
    int i;
    printf("Gezegenler\n");
    for(i=0;i<9;i++)
        printf("%s\n",gezegenler[i]);
   
    return 0;
}
Gezegenler
Merkur
Venus
Dunya
Mars
Jupiter
Neptun
Uranus
Saturn
Pluton
#include <stdio.h>

int main(){
    char *gezegenler[9]={"Merkur","Venus","Dunya","Mars",
                            "Jupiter","Neptun","Uranus","Saturn", "Pluton"};
    int i;
    printf("Gezegenler\n");
    for(i=0;i<9;i++)
        printf("%s\n",*(gezegenler+i));

    return 0;
}
Gezegenler
Merkur
Venus
Dunya
Mars
Jupiter
Neptun
Uranus
Saturn
Pluton
#include <stdio.h>

int main(){
    char *gezegenler[]={"Merkur","Venus","Dunya","Mars",
                            "Jupiter","Neptun","Uranus","Saturn", "Pluton"};
    int i;
    printf("M harfi ile başlayan gezegenler\n");
    for(i=0;i<9;i++)
        if( (*(gezegenler+i))[0]=='M')
            printf("%s\n",*(gezegenler+i));

    return 0;
}
M harfi ile başlayan gezegenler
Merkur
Mars

komut satırı parametreleri

#include <stdio.h>

int main(int argc, char *argv[]) {
	int i;
	printf("%d\n",argc);
	
	for(i=0;i<argc;i++)
		printf("%s\n",*(argv+i));
	
	return 0;
}
#include <stdio.h>
int main(int argc, char *argv[]) {
	char *gezegenler[]={"Merkur","Venus","Dunya","Mars",
                           "Jupiter","Neptun","Saturn","Uranus","Pluton"};
	int i;
	char arg;
	//printf("komut satiri arguman sayisi: %d\n",argc);
	
	if(argc>1)
		arg=argv[1][0];
		
	arg=arg-'1';
	if(arg>=0 && arg<=9)
		printf("secilen gezegen %s",gezegenler[arg]);
	else
		printf("hatali secim ");
	
	//for(i=0;i<argc;i++)
	//	printf("%s\n",argv[i]);
	
	
	return 0;
}
#include <stdio.h>
#include <string.h>

void buyuk_harfe_cevir(char kaynak[], char hedef[]){
    int i;
    for(i=0;kaynak[i]!='\0';i++){
        if(kaynak[i]>='a' && kaynak[i]<='z')
            hedef[i]=kaynak[i]-('a'-'A');
        else
            hedef[i]=kaynak[i];
    }
    hedef[i]='\0';   
}
int main(int argc, char *argv[]) {
    
   char a[100], b[100];
    printf("Bir metin giriniz");
    // gets(a);
    strcpy(a,"Bu bir metindir.");
    buyuk_harfe_cevir(a, b);
    printf("\nSONUC: %s",b);
    
    return 0;
}
Bir metin giriniz
SONUC: BU BIR METINDIR.
#include <stdio.h>
#include <string.h>

void buyuk_harfe_cevir(char kaynak[], char hedef[]){
    int i;
    for(i=0;kaynak[i]!='\0';i++){
        hedef[i]=kaynak[i];
        if(kaynak[i]>='a' && kaynak[i]<='z')
            hedef[i] -= ('a'-'A');    
    }
    hedef[i]='\0';   
}
int main(int argc, char *argv[]) {
    
   char a[100], b[100];
    printf("Bir metin giriniz");
    // gets(a);
    strcpy(a,"Bu bir metindir.");
    buyuk_harfe_cevir(a, b);
    printf("\nSONUC: %s",b);
    
    return 0;
}
Bir metin giriniz
SONUC: BU BIR METINDIR.
#include <stdio.h>
#include <string.h>

int palindrom(char str[]){
    int uzunluk,i;
    for(i=0; str[i]!='\0';i++);
    uzunluk=i;
    for(i=0;i<uzunluk;i++)
        if(str[i]!=str[uzunluk-i-1])
            return 0;
    return 1;  
}
int main(int argc, char *argv[]) {
    
   char a[100];
    printf("Bir metin giriniz");
    // gets(a);
    strcpy(a,"ey edip adanada pide ye");
    if(palindrom(a)==1)
        printf("\ngirilen metin palindromdur: %s", a);
    else
        printf("\ngirilen metin palindrom degildir: %s", a);
    
    return 0;
}
Bir metin giriniz
girilen metin palindromdur: ey edip adanada pide ye
#include <stdio.h>
#include <string.h>

int palindrom(char str[]){
    int uzunluk,i;
    for(i=0; str[i]!='\0';i++);
    uzunluk=i;
    for(i=0;i<uzunluk;i++)
        if(str[i]!=str[uzunluk-i-1])
            return 0;
    return 1;  
}
int main(int argc, char *argv[]) {
    
   char a[100];
    printf("Bir metin giriniz");
    // gets(a);
    strcpy(a,"ey edip adanada pide ye");
    if(palindrom(a))
        printf("\ngirilen metin palindromdur: %s", a);
    else
        printf("\ngirilen metin palindrom degildir: %s", a);
    
    return 0;
}
Bir metin giriniz
girilen metin palindromdur: ey edip adanada pide ye
#include <stdio.h>
#include <string.h>

int iki_tabanindan_on_tabanina_donustur(char iki_tabani_sayi[]){
    int i, ikinin_ussu=1;
    int sayi_10=0;
    int uzunluk=0;
    for(i=0;iki_tabani_sayi[i]!='\0';i++);
    uzunluk=i;
    for(i=uzunluk-1;i>=0;i--){
        if(iki_tabani_sayi[i]=='1')
            sayi_10 += ikinin_ussu;
            
        
        ikinin_ussu *= 2;
    }
    
    return sayi_10;
}

int main(int argc, char *argv[]) {
    
   char sayi_2[32];
    int sayi_10;
    printf("İki tabaninda bir sayi giriniz: ");
    // gets(sayi_2);
    strcpy(sayi_2,"1011101011110100");
    sayi_10 = iki_tabanindan_on_tabanina_donustur(sayi_2);
    printf("\n%s 2 tabanindaki sayinin 10 tabanindaki karsiligi: %d", sayi_2, sayi_10);
    
    return 0;
}
İki tabaninda bir sayi giriniz: 
1011101011110100 2 tabanindaki sayinin 10 tabanindaki karsiligi: 47860