Ticker

6/random/ticker-posts

C Programlama String Örnek Sorular

C programlama dilinde stringler (katar, karakter dizisi, char array) konusunu daha iyi anlamaya yardımcı olması amacıyla örnek sorular ve çözümlerini aşağıda inceleyebilirsiniz. Çözümlere hemen geçmeden kendi çözümlerinizi denemeniz kavrama açısından daha faydalı olacaktır.

C String Örnek Sorular ve Çözümleri
C String Örnek Sorular ve Çözümleri

 

 

1. Kullanıcıdan konsol aracılığıyla alınan stringin uzunluğunu yazan C program kodu yazınız.

2. gets() ve puts() metodunu kullanarak kullanıcıdan string alınız ve ekrana yazdırınız. puts() metodunun yeni satır karakteri ile bastığını gösteriniz.

3. Kullanıcıdan klavye ile girilen cümlenin kaç kelimeden oluştuğunu ekrana yazan C program kodu yazınız.

4. Klavyeden girilen cümlenin harflerini alfabedeki bir sonraki alfabe ile değiştirerek şifreleyip ekrana yazınız.

5. Girilen bir cümledeki sesli harflerin her birinin kaçar tane kullanıldığını yazan C kodu yazınız.

6. Klavyeden girilen bir cümlenin kelimelerinin sırasını rastgele değiştirip yeni cümleyi ekrana yazan C kodu yazınız.

7. Klavyeden girilen cümlenin yine klavyeden girilen başlangıç ve bitiş indeksleri arasında kalan substring'ini ekrana yazan C kodu yazınız.

8. Klavyeden girilen bir cümlede, yine klavyeden girilen bir kelimeyi arayan ve kaçıncı indekste aranan kelimenin cümle içinde başladığını ekrana yazan C program kodu yazınız. Aranan kelime cümle içinde yoksa -1 yazınız.

9. Klavyeden girilen bir cümlede, yine klavyeden girilen bir kelimeyi arayan ve cümle içinde kaç defa kullanıldığını ekrana yazan C program kodu yazınız. Aranan kelime cümle içinde yoksa -1 yazınız. Örnek:

String giriniz:
kartal kalkar dal sarkar dal sarkar kartal kalkar
Aranacak kelimeyi giriniz:
kar
Kelime bulunma adedi: 5

10. Klavyeden girilen bir stringi başka bir stringe kopyalayan C program kodu yazınız. Örnek:




Cevaplar

1. fgets() metodu new line karakterini de okuduğu için girilen string uzunlukları 1 fazla görünecektir. Örneğin Adana yazıp enterladığımızda ekranadaki sonuç 6 yazacaktır.

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

// string uzunlugu
// see muratoksuzer.com
int main()
{
    char inputBuffer[1000]; 
   
 	printf("\nString giriniz:\n"); 
	 
	fgets(inputBuffer, sizeof inputBuffer, stdin);
	
	int length = 0;
	
	while(inputBuffer[length] != '\0'){
	
		length++;
	
	}
    
    printf("string uzunlugu: %d\n", length);
    
    printf("string uzunlugu strlen fonksiyonu ile: %d\n", strlen(inputBuffer));
    
    return(0);
}

2.gets() ve puts() metodları.

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

// gets() ve puts() metodlari
// see muratoksuzer.com
int main()
{
    char inputBuffer[1000]; 
   
 	printf("\nString giriniz:\n"); 
	
	gets(inputBuffer);
	
	printf("puts() metodu ile tekrar konsola yazdiriyoruz:\n\n");
	
	puts(inputBuffer);
    
    return(0);
}

3.

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

// kelime adedini bul
// see muratoksuzer.com
int main()
{
    char inputBuffer[1000]; 
   
 	printf("\nString giriniz:\n"); 
	
	gets(inputBuffer);
	
	int kelimeSayisi = 0;
	
	for(int i = 0; ; i++) {
		
		if(inputBuffer[i] == '\0') {
			break;
		}
	
		if(inputBuffer[i] == ' ') {
			kelimeSayisi++;
		}
	
	}
	
	// en son kelimeden sonra bosluk gelmiyor cumle bitiyor. Onu da sayiyoruz.
	kelimeSayisi++;
	
	printf("%d adet kelime bulundu.\n\n", kelimeSayisi);
 
    
    return(0);
}

4.

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

// alfabedeki sonraki harf ile degistir
// see muratoksuzer.com
int main()
{
    char inputBuffer[1000]; 
   
 	printf("\nString giriniz:\n"); 
	
	gets(inputBuffer);
	
	for(int i = 0; ; i++) {
		
		if(inputBuffer[i] == '\0') {
			break;
		}
	
		 inputBuffer[i]++;
	
	}
	
	printf("Sifreli metin:\n\n"); 
	
	puts(inputBuffer);

    
    return(0);
}

5.

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

// sesli harf tekrar kullanim sayilarini hesapla
// see muratoksuzer.com
int main()
{
    char inputBuffer[1000]; 
   
	char sesliHarfler[16]  = {'a', 'e', 'E', 'i', 'o', 'u', 'A', 'I', 'O', 'U',
							'ı', 'İ', 'ö', 'Ö','ü', 'Ü'};
   
    int sesliHarfKullanimSayilari[14];
    
    for(int i = 0; i < 16; i++) {
		
		sesliHarfKullanimSayilari[i] = 0;
	}
   
 	printf("\nString giriniz:\n"); 
	
	gets(inputBuffer);
	
	for(int i = 0; ; i++) {
		
		if(inputBuffer[i] == '\0') {
			break;
		}
	
		for(int j = 0;j < 16; j++){
		
			if(inputBuffer[i] == sesliHarfler[j]) {
			
				sesliHarfKullanimSayilari[j]++;
			}
		
		}
	
	}
	
	printf("Seli harf:    Kullanim sayisi:\n\n"); 
	
	for(int j = 0;j < 16; j++){
	
	  printf("%c:    %d adet\n", sesliHarfler[j], sesliHarfKullanimSayilari[j]); 	 
	
	}

    
    return(0);
}

6.

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

// cumledeki kelimeleri rastgele sirada konsola yaz (shuffle)
// see muratoksuzer.com
int main()
{
    char inputBuffer[1000]; 
   
	char kelimeler[50][50];
   
 	printf("\nString giriniz:\n"); 
	
	fgets(inputBuffer, sizeof inputBuffer, stdin);
	
	int kelimeIndex = 0;
	
	int kelimeHarfIndex = 0;
	
	for(int i = 0; ; i++) {
		
		if(inputBuffer[i] == '\n' || inputBuffer[i] == '\0') {
			
			kelimeler[kelimeIndex][kelimeHarfIndex] = '\0';
			kelimeIndex++;
			break;
		}
	
		if(inputBuffer[i] == ' ') {
		
			kelimeler[kelimeIndex][kelimeHarfIndex] = '\0';
			kelimeIndex++;
			kelimeHarfIndex = 0;
		} else {
		
			kelimeler[kelimeIndex][kelimeHarfIndex] = inputBuffer[i];
			kelimeHarfIndex++;
		}
	
	}
	
	printf("%d adet kelime bulundu \n\n", kelimeIndex); 
	 
	srand ( (unsigned int) time (0) );
	
	char temp[50];
	int randomNumber;
   
	//char* strcpy(char *dest, const char *src); kullanim ornegi
  
    for (int i=kelimeIndex-1; i>0; i--) {
                
        strcpy(temp, kelimeler[i]);
        
        randomNumber = (rand() % (i+1));
       
        strcpy(kelimeler[i], kelimeler[randomNumber]);
         
        strcpy( kelimeler[randomNumber], temp);
    }
	
	for(int i = 0; i <  kelimeIndex; i++){
		
		printf("%s ", kelimeler[i]); 
	}
    
    printf("\n");
    
    return(0);
}

7.

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

// cumlenin substringini ekrana yaz
// see muratoksuzer.com
int main()
{
    char inputBuffer[1000]; 
    
    char substring[1000]; 
      
 	printf("\nString giriniz:\n"); 
	
	fgets(inputBuffer, sizeof inputBuffer, stdin);
	
	//size_t strlen(const char *str); kullanim ornegi
	
	printf("\nString uzunlugu: %d \n", strlen(inputBuffer)); 
	
	int baslangicIndex = 0;
	
	int bitisIndex = 0;
	
	printf("\nBaslangic index giriniz:\n"); 
	
	scanf("%d", &baslangicIndex);
	
	printf("\nBitis index giriniz:\n"); 
	
	scanf("%d", &bitisIndex);
	
	int substringIndex = 0;
	
	for(int i = 0; ; i++) {
		
		if(inputBuffer[i] == '\n' || inputBuffer[i] == '\0') {
			substring[substringIndex++] = '\0';
 			break;
		}
	
		if(i >= baslangicIndex) {
		
			substring[substringIndex++] = inputBuffer[i];
		
		}
		
		if(i == bitisIndex) {
			
			substring[substringIndex++] = '\0';
			break;
		}
	}
	
	printf("bulunan substring: \n\n"); 	 
    
    printf("%s\n", substring);
    
    return(0);
}

8.

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

// string icinde string arama
// see muratoksuzer.com
int main()
{
    char inputBuffer[1000]; 
    
    char aranacakKelime[1000]; 
      
 	printf("\nString giriniz:\n"); 
	
	fgets(inputBuffer, sizeof inputBuffer, stdin);
	
	printf("\Aranacak kelimeyi giriniz:\n"); 
	
	gets(aranacakKelime);
	
	int kelimeBaslangicIndex = -1;
	
	int arananKelimeIterator = 0;
	
	for(int i = 0; ; i++) {
		
		if(inputBuffer[i] == '\n' || inputBuffer[i] == '\0') {
			
			if(aranacakKelime[arananKelimeIterator] != '\0') {
							
				kelimeBaslangicIndex = -1;// bulunamadi
			}
			
 			break;
		}
		
		if(inputBuffer[i] == aranacakKelime[arananKelimeIterator]) {
			
			if(kelimeBaslangicIndex == -1) {
				
				kelimeBaslangicIndex = i;
			}
		
			arananKelimeIterator++;
		} else if(aranacakKelime[arananKelimeIterator] == '\0') {
			 // bulundu
			 break;
		}
		else {
			arananKelimeIterator = 0;
			kelimeBaslangicIndex = -1;
		}
	 
	}
	
	printf("Kelime baslangic index: %d\n", kelimeBaslangicIndex);
    
    return(0);
}

9.

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

// string icinde string kac defa geciyor
// see muratoksuzer.com
int main()
{
    char inputBuffer[1000]; 
    
    char aranacakKelime[1000]; 
      
 	printf("\nString giriniz:\n"); 
	
	fgets(inputBuffer, sizeof inputBuffer, stdin);
	
	printf("\Aranacak kelimeyi giriniz:\n"); 
	
	gets(aranacakKelime);
	
	int kelimeBaslangicIndex = -1;
	
	int arananKelimeIterator = 0;
	
	int bulunmaAdedi = 0;
	
	for(int i = 0; ; i++) {
		
		if(inputBuffer[i] == '\n' || inputBuffer[i] == '\0') {
			
			if(aranacakKelime[arananKelimeIterator] != '\0') {
							
				kelimeBaslangicIndex = -1;// bulunamadi
			}
			
 			break;
		}
		
		if(inputBuffer[i] == aranacakKelime[arananKelimeIterator]) {
			
			if(kelimeBaslangicIndex == -1) {
				
				kelimeBaslangicIndex = i;
			}
		
			arananKelimeIterator++;
		} else if(aranacakKelime[arananKelimeIterator] == '\0') {
			 // bulundu
			 bulunmaAdedi++;
			
			 arananKelimeIterator = 0;
		     kelimeBaslangicIndex = -1;
		}
		else {
			arananKelimeIterator = 0;
			kelimeBaslangicIndex = -1;
		}
	 
	}
	
	printf("Kelime bulunma adedi: %d\n", bulunmaAdedi);
    
    return(0);
}

10.

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

// string kopyalama
// see muratoksuzer.com
int main()
{
    char inputBuffer[1000]; 
    
    char copyString[1000]; 
      
 	printf("\nString giriniz:\n"); 
	
	fgets(inputBuffer, sizeof inputBuffer, stdin);
	
	
	for(int i = 0; ; i++) {
		
		if(inputBuffer[i] == '\n' || inputBuffer[i] == '\0') {
			copyString[i] = '\0';
 			break;
		}
		
		copyString[i] = inputBuffer[i];
	 
	}
	
	printf("kopyalanan string: \n\n"); 	 
    
    printf("%s\n", copyString);
    
    return(0);
}

Daha fazlası için youtube kanalıma göz atabilirsiniz.

Yorum Gönder

0 Yorumlar