C dersinde hoca bir ödev verdi ancak yapamıyorum ilk dersleri kaçırdığım için biraz yardımcı olursanız sevinirim
ödev : : girilen karakteri büyük karatere çevirecek ve sayı girerse boşluk yazacak bir program
örnek : : : dkglşfdaj hfd243jol (girer) ==>>> DKGLSFDAJ HFD JOL (Çıkar) burdaki boşluk tek olması lazımmış her sayı için ayrı boşluk değilde o sayıyı grup olarak düşünüp tek boşluk olacak şekilde yazmamış gerekiyormuş
yardımcı olursanız teşekkür ederim
Elinde char array olduğunu varsayarsak, eleman sayısı kadar dönen döngüde her bir karakteri ASCII koduna çevirirsin. 29 tane (her harf için bir tane) switch yazıp ASCII'ye çevirdiğin değer hangisine denk geliyorsa orada ne olması erekiyorsa onu yaparsın. Sayılar için de önce kontrolü yap (bir önceki sayı mıydı diye, sayıysa return veya exit neyse işte) sonra boşluk bırak.
quote:
Orijinalden alıntı: Ichy
C dersinde hoca bir ödev verdi ancak yapamıyorum ilk dersleri kaçırdığım için biraz yardımcı olursanız sevinirim
ödev : : girilen karakteri büyük karatere çevirecek ve sayı girerse boşluk yazacak bir program
örnek : : : dkglşfdaj hfd243jol (girer) ==>>> DKGLSFDAJ HFD JOL (Çıkar) burdaki boşluk tek olması lazımmış her sayı için ayrı boşluk değilde o sayıyı grup olarak düşünüp tek boşluk olacak şekilde yazmamış gerekiyormuş
yardımcı olursanız teşekkür ederim
zor soru bence bunu yapacak elemana helal olsun
karakterlerın sayı değerlerine 32 ekle yeniden char olarak yazdır
tamam hallettim ben gerekli gereksiz yorum yapanlara teşekkürler çözüm :
#include<stdio.h> #include<stdlib.h>
void odev(char a){ int bosluk=0 ; int mahmut=0 ; // başlangıç durumu parametresi mahmut 0 ise başlangıçtır ve boşluk bırakılmaz değilse kod normal devam eder scanf("%c",&a); while(a!='\n'){
if((a<='Z' && a>'A')||(a<='z' && a>='a')){ a = a + 'A'-'a'; printf("%c",a); bosluk=0; mahmut=mahmut+1; }else{