Muhendislik Paylaşım Platformu
Mayıs 25, 2012, 06:23:55 ÖS *
Merhaba, Ziyaretçi. Lütfen giriş yapın veya üye olun.
Aktivasyon mailiniz gelmediyse buraya tıklayın.

Kullanıcı adınızı, parolanızı ve aktif kalma süresini giriniz
Duyurular:
 
   Ana Sayfa   Yardım Ara Takvim Giriş Yap Kayıt  
Sayfa: [1]   Aşağı git
  Yazdır  
Gönderen Konu: YARDIM: hatam nerde? (C)  (Okunma Sayısı 1187 defa)
ozzy_3
Yeni Gelen
*
Offline Offline

Cinsiyet: Bay
Mesaj Sayısı: 1


Üyelik Bilgileri
« : Ocak 28, 2009, 03:11:10 ÖÖ »

#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <ctype.h>
#include <stdlib.h>
int main (void){
     char a[]="";
     int i;
     char *ptr;
     printf("bir cumle giriniz:");
     gets(a);
     i=strlen(a);
     ptr = (char*)malloc(sizeof(char)*i);
     ptr=a;
     for(;*ptr!='\0';ptr++){
     if(isspace(*ptr))
     printf("\n");
     else
     printf("%c",*ptr);

     }
     free(ptr);
     getch();
     return 0;
}
programın amacı: boşluk warsa alt satıra geç..
program çalışıo we işlemi yaptıktan sora derleyicideki "run"dan sora hata verio veya .exe dosyasından açarsak program görevini yaptıktan sora herhangi bir tuşa bastıımızda program sonlanmıo nedeni ne olabilir? bi türlü bulamadım kafayı yicem Undecided
Logged
recursive
Yeni Gelen
*
Offline Offline

Cinsiyet: Bayan
Mesaj Sayısı: 9


Üyelik Bilgileri
« Yanıtla #1 : Mart 04, 2009, 01:08:35 ÖÖ »

kullandığın derleyici ne bilmiyorum ama ben bu kodu microsoft visual studio'da derlediğimde çalıştı ancak sonlanmadan önce uyarı verdi.bi kere sen başta string'e boşluk atmışsın buna gerek yok stringi tanımla ama belirli bi uzunluk vermen lazım
char a[100] gibi.böyle olunca gets(a) dediğinde kullanıcının girdiği cümleyi stringe atar sonuna null ekler zaten.Ayrıca sonundaki getch() komutuna gerek yok.main'i void tanımlaya bilirsin değer döndürmesine gerek yok bu kodda main fonksiyonunun.tabi void tanımlarsan return 0 yazmana da gerek kalmaz.Ayrıca stringin boyunu hesaplamana gerek yok çünkü pointer string kadar bellekte yer kaplıcaksa pointer tutmanın anlamı yok.pointer karakter gösteriyosa bir karakterlik yer ayrılır =>ptr = (char*)malloc(sizeof(char)); bu durumda da i ile işin yok o satırları da kaldırabilirsin.bu söylediğim düzenlemelerden sonra kod gayet iyi bir şekilde çalışıyor Smiley kolay gelsin...
Logged
aticelep
Yeni Gelen
*
Offline Offline

Cinsiyet: Bay
Mesaj Sayısı: 1


Üyelik Bilgileri
« Yanıtla #2 : Ağustos 17, 2010, 02:38:23 ÖÖ »

Borland C ++ 5.0 ile derlersen, bir sorunun olmadığını görürsün. Yazılım doğru olarak çalışıyor.
Logged
Sayfa: [1]   Yukarı git
  Yazdır  
 
Gitmek istediğiniz yer:  

MySQL ile Güçlendirildi PHP ile Güçlendirildi Powered by SMF 1.1.5 | SMF © 2006, Simple Machines LLC
Seo4Smf v0.2 © Webmaster's Talks
XHTML 1.0 Geçerli! CSS Geçerli!
Bu Sayfa 0.078 Saniyede 19 Sorgu ile Oluşturuldu