C Programlama Dilinde String kısmını kullanıcının belirlemesini nasıl sağlarım?

emirbykc

Hectopat
Katılım
19 Temmuz 2020
Mesajlar
87
ASCII-Tabelası üzerinde bulunan karakterleri, int haline çevirecek bir programlama gerekiyor. Yazdığım program tüm karakterleri, değerlere hatasız çeviriyor ama ASCII-Wert vom Zeichen( Karakterin ASCII Tabelasındaki değeri) kısmında vom Zeichen yerine kullanıcının girdiği karakterin yer almasını istiyorum. Yani kullanıcı "b" yazdığında orada "ASCII-Wert von b" yazmasını istiyorum. Ne yapmam gerekir?

Screenshot_2.png
 
Son düzenleyen: Moderatör:
ASCII-Tabelası üzerinde bulunan karakterleri, int haline çevirecek bir programlama gerekiyor. Yazdığım program tüm karakterleri, değerlere hatasız çeviriyor ama ASCII-Wert vom Zeichen( Karakterin ASCII Tabelasındaki değeri) kısmında vom Zeichen yerine kullanıcının girdiği karakterin yer almasını istiyorum. Yani kullanıcı "b" yazdığında orada "ASCII-Wert von b" yazmasını istiyorum. Ne yapmam gerekir?

Eki Görüntüle 718924
Senin hatan printf methodunda char değişken yazdırırken %d kullanmak olmuş. %c kullanmalısın. Örnek;

 
Son düzenleme:
Senin hatan printf methodunda char değişken yazdırırken %d kullanmak olmuş. %c kullanmalısın. Örnek;
ASCII-Tabelası üzerinde bulunan karakterleri, int haline çevirecek bir programlama gerekiyor.

Konu bildirimi geldi diye baktım acık , müsait anımda bakayım.
 
char chr1[100]; dersiniz. 100 karakterlik yer alırsınız. C'de böyle mümkün.

Sen ASCII karakterlerin ondalık değerini istiyorsun. Kodunda hata yok. Dediğimi yapman yeterli.

Şunun gibi bir şey yapmak istemiyor musunuz?
Kod:
#include <stdio.h>

int main() {
  char str[100];
  printf("Metin giriniz: ");
  scanf("%s", str);

  int i = 0;
  while (str[i] != '\0'){
    printf("%c: %d\n", str[i], str[i]);
    ++i;
  }
 
  return 0;
}
 
Son düzenleme:
Senin hatan printf methodunda char değişken yazdırırken %d kullanmak olmuş. %c kullanmalısın. Örnek;

O halde arkadaşın istediği program bu. Linki güncelledim.

char chr1[100]; dersiniz. 100 karakterlik yer alırsınız. C'de böyle mümkün.

Sen ASCII karakterlerin ondalık değerini istiyorsun. Kodunda hata yok. Dediğimi yapman yeterli.

Şunun gibi bir şey yapmak istemiyor musunuz?
Kod:
#include <stdio.h>

int main() {
  char str[100];
  printf("Metin giriniz: ");
  scanf("%s", str);

  int i = 0;
  while (str[i] != '\0'){
    printf("%c: %d\n", str[i], str[i]);
    ++i;
  }

  return 0;
}
Scanf'i getchar() ile değiştir.

Printf de %d yerine %c koy.
ASCII-Tabelası üzerinde bulunan karakterleri, int haline çevirecek bir programlama gerekiyor.

Konu bildirimi geldi diye baktım acık , müsait anımda bakayım.

Öncelikle herkese ilgisi için çok teşekkürler. Öncelikle söylemeliyim ki yaklaşık bir haftadır C dilini öğreniyorum ve bu benim ödevim. getchar, while gibi komutları daha öğrenmediğim için kullanmam sağlıklı olmaz diye düşünüyorum. Sanırım sorumu yeterince iyi anlatamamışım, iki görsel üzerinden anlatmayı deneyeyim.

Screenshot_4.png


Bu görsel benim hali hazırda yazdığım oluşturduğum program. Kullanıcının girdiği değerden bağımsız komut istemci üzerinde ASCII-Wert vom Zeichen kısmı hep aynı kalıyor. Ben bunun değişmesini istiyorum.

l
Screenshot_3.png


Yani kullanıcı b değerini girdiğinde ASCII-Wert von b olsun, c değerini girdiğinde ASCII-Wert von c olsun istiyorum. ASCII-Wert von kısmı her zaman stabil kalacak ama yazı üzerindeki son kısım kullanıcının atayacağı değer olacak. Bunu nasıl başarabilirim?


@Berkay Davas attığın link için üye olmam gerekiyormuş, belki cevabı anlatmışsındır ama kısıtlı zamanım olduğu için üye olamadım, gün içinde bakacağım. Çok teşekkürler.
 
Öncelikle herkese ilgisi için çok teşekkürler. Öncelikle söylemeliyim ki yaklaşık bir haftadır C dilini öğreniyorum ve bu benim ödevim. getchar, while gibi komutları daha öğrenmediğim için kullanmam sağlıklı olmaz diye düşünüyorum. Sanırım sorumu yeterince iyi anlatamamışım, iki görsel üzerinden anlatmayı deneyeyim.

Eki Görüntüle 719002

Bu görsel benim hali hazırda yazdığım oluşturduğum program. Kullanıcının girdiği değerden bağımsız komut istemci üzerinde ASCII-Wert vom Zeichen kısmı hep aynı kalıyor. Ben bunun değişmesini istiyorum.

lEki Görüntüle 718999

Yani kullanıcı b değerini girdiğinde ASCII-Wert von b olsun, c değerini girdiğinde ASCII-Wert von c olsun istiyorum. ASCII-Wert von kısmı her zaman stabil kalacak ama yazı üzerindeki son kısım kullanıcının atayacağı değer olacak. Bunu nasıl başarabilirim?


@Berkay Davas attığın link için üye olmam gerekiyormuş, belki cevabı anlatmışsındır ama kısıtlı zamanım olduğu için üye olamadım, gün içinde bakacağım. Çok teşekkürler.
Öğrenmekten kaçma. Yoksa daha böyle bize çok ödevini yaptırırsın ve sınıfta kalırsın.

C'de karakterler zaten int numaradır ve (int)char yaptığın zaman döner. Senin yapman sadece %d yi %c ile değiştirmek.
 
Öncelikle herkese ilgisi için çok teşekkürler. Öncelikle söylemeliyim ki yaklaşık bir haftadır C dilini öğreniyorum ve bu benim ödevim. getchar, while gibi komutları daha öğrenmediğim için kullanmam sağlıklı olmaz diye düşünüyorum. Sanırım sorumu yeterince iyi anlatamamışım, iki görsel üzerinden anlatmayı deneyeyim.

Eki Görüntüle 719002

Bu görsel benim hali hazırda yazdığım oluşturduğum program. Kullanıcının girdiği değerden bağımsız komut istemci üzerinde ASCII-Wert vom Zeichen kısmı hep aynı kalıyor. Ben bunun değişmesini istiyorum.

lEki Görüntüle 718999

Yani kullanıcı b değerini girdiğinde ASCII-Wert von b olsun, c değerini girdiğinde ASCII-Wert von c olsun istiyorum. ASCII-Wert von kısmı her zaman stabil kalacak ama yazı üzerindeki son kısım kullanıcının atayacağı değer olacak. Bunu nasıl başarabilirim?


@Berkay Davas attığın link için üye olmam gerekiyormuş, belki cevabı anlatmışsındır ama kısıtlı zamanım olduğu için üye olamadım, gün içinde bakacağım. Çok teşekkürler.
C:
#include <stdio.h>
#include <stdlib.h>

int main(){
    char word;
    printf("Please enter a letter : ");
    scanf("%c",&word);
    printf("ASCII number equivalent of letter %c is : %d \n",word,(int)word);
     
 
    return 0;
}

Kodunuz ile benim kodum arasındaki farkı inceleyip anlayabilirsiniz sanırım. Tek karıştırabileceğiniz yer, casting işlemi yaptığım (int)word olabilir belki, orada da char türünü int türüne çevirdim.
 
Bu görsel benim hali hazırda yazdığım oluşturduğum program. Kullanıcının girdiği değerden bağımsız komut istemci üzerinde ASCII-Wert vom Zeichen kısmı hep aynı kalıyor. Ben bunun değişmesini istiyorum.



Yani kullanıcı b değerini girdiğinde ASCII-Wert von b olsun, c değerini girdiğinde ASCII-Wert von c olsun istiyorum. ASCII-Wert von kısmı her zaman stabil kalacak ama yazı üzerindeki son kısım kullanıcının atayacağı değer olacak. Bunu nasıl başarabilirim?

printf'in içine yazdığın değerler ekrana bastığın değerler. Sen şu an printf("ASCII-Wert von Zeichen") yaparsan zaten hepsinde Zeichen'ı yazar.

printf("%d",chr1) böyle bir kullanım da chr1'in değerini %d yerine yazar. (int yazacak, %d decimalı temsil ettiğinden)

printf("ASCII-Wert von %d",chr1) buradaki %d , kullanıdan gelen değer olacak(ch1'i parametre aldığından). Arkadaşlar örneklerle anlatmışlar zaten, kafanı nerenin karıştırdığını anlayamadım.

Son atılan örnek istediğini veriyor sana uzun uzadıya yazmayayım.

printf("ASCII number equivalent of letter %c is : %d \n",word,(int)word); burda da parametreler %'nin yanındaki değerlere göre sıralı bir şekilde ilerler. Bunu kendi koduna göre düzenlersen istediğini yazarsın.
 

Yeni konular

Geri
Yukarı