Son Çıktı
Coddy'nin C Journey'sinin Logic & Flow bölümünün bir parçası — ders 24 / 63.
Görev
KolayÖnceki derslerde oluşturduğunuz tüm özellikleri tek bir kapsamlı çıktıda birleştirerek metin yardımcı programınızı tamamlayın. Programınız şunları yapmalıdır:
- Kullanıcıdan kısa bir cümle girmesini istemek için şu metni yazdırın:
Enter a sentence:(sonunda yeni satır olmamalı —printf("Enter a sentence: \n")değil,printf("Enter a sentence: ")kullanın) - Girdiyi saklamak için 200 elemanlı
sentenceadında bir karakter dizisi (array) tanımlayın - Kullanıcıdan tek bir kelime okumak için
%sformat belirleyicisi ilescanfkullanın - Görüntüleme amaçlı olarak orijinal kelimeyi ayrı bir karakter dizisinde saklayın
strlen()kullanarak toplam karakter sayısını hesaplayın- Her bir karakteri döngü ile kontrol ederek ve hem küçük hem de büyük harf olarak herhangi bir sesli harfle (a, e, i, o, u) eşleşip eşleşmediğini kontrol ederek sesli harfleri sayın
- Bir döngü içinde
toupper()fonksiyonunu kullanarak kelimeyi büyük harfe dönüştürün - Tüm sonuçları, her bir bilgi ayrı bir satırda olacak şekilde temiz ve düzenli bir formatta görüntüleyin
Dizgi (string) fonksiyonları için <string.h> başlığını ve karakter dönüştürme fonksiyonları için <ctype.h> başlığını eklemeyi unutmayın.
Çıktınız tüm sonuçları tam olarak aşağıdaki formatta görüntülemelidir:
Enter a sentence: Original: [word]
Characters: [count]
Vowels: [count]
Uppercase: [WORD]Önemli: Enter a sentence: isteminden sonra yeni bir satır gelmemelidir. Original: kelimesi, girdi okunduktan hemen sonra aynı satırda görünür.
Örneğin, girdi şu ise:
HelloÇıktınız şöyle olmalıdır:
Enter a sentence: Original: Hello
Characters: 5
Vowels: 2
Uppercase: HELLOBu final görevi, proje boyunca geliştirdiğiniz tüm metin işleme özelliklerini bir araya getirir: girdi işleme, strlen() ile karakter sayma, döngüler ve koşullu ifadelerle sesli harf sayma ve toupper() ile büyük harfe dönüştürme. Program, metin analizi sonuçlarının temiz ve düzenli bir özetini sunmalıdır.
Kendin dene
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main() {
char sentence[200];
printf("Enter a sentence: ");
scanf("%s", sentence);
printf("You entered: %s\n", sentence);
int length = strlen(sentence);
printf("Character count: %d\n", length);
printf("Length: %d\n", length);
int vowel_count = 0;
for (int i = 0; i < length; i++) {
char c = sentence[i];
if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u' ||
c == 'A' || c == 'E' || c == 'I' || c == 'O' || c == 'U') {
vowel_count++;
}
}
printf("Vowel count: %d\n", vowel_count);
printf("Uppercase: ");
for (int i = 0; i < length; i++) {
printf("%c", toupper(sentence[i]));
}
printf("\n");
return 0;
}Logic & Flow bölümündeki tüm dersler
1Pointer Temelleri
Pointer Nedir?Pointer TanımlamaAdres Operatörü (&)Dereference Operatörü (*)NULL Pointer'larÖzet: Pointer Temelleri4Proje: Basit Metin Aracı
Projeye Genel BakışKarakter Sayma2İşaretçiler ve Diziler
İşaretçi Olarak Dizi İsimleriDizi Elemanları - İşaretçilerİşaretçi Aritmetiğiİşaretçilerin KarşılaştırılmasıÖzet: İşaretçi ile Dizi Gezinme5İşaretçiler ve Fonksiyonlar
Değer ile GeçmeFonksiyonlara İşaretçi Göndermeİşaretçiler ile Değişkenleri DeğiştirmeKlasik Bir Örnek: SwapFonksiyonlara Dizi GöndermeÖzet: Fonksiyon İşaretçi Argümanları8Yapılar ve İşaretçiler
Yapılara İşaretçilerOk Operatörü (->)Yapıları Değer ile AktarmaYapı İşaretçilerini AktarmaYapıların Dinamik TahsisiÖzet: Yapıyı Değiştirme - Ptr11Son Tekrar Görevleri
Tekrar: Dinamik String BirleştirmeTekrar: Struct DizisiTekrar: Kelime Frekans Sayacı3Karakter Dizileri ve Stringler
char Dizisi Olarak StringlerNull Sonlandırıcıscanf ile String Girişistrlen() Kullanımıstrcpy() Kullanımıstrcat() Kullanımıstrcmp() KullanımıÖzet: Temel String Fonksiyonları