• 23-08-2010, 01:36:59
    #1
    Yapmak istediğim şey stringle alınan cümlenin her boşluğunda alt satıra geçmesini istiyorum.
    Örneğin "merhaba dünya r10" cümlesini

    merhaba
    dünya
    r10

    şeklinde yazdıracak.Kendi yazdığım kod ise aşağıda nerde hata yaptığımı ve doğru kodu söylerseniz çok sevinirim.

    #include <stdio.h>
    #include <string.h>
    
        int main(){
            
        char str[100]; 
        int i;           
        gets(str); 
        for(i=0;i<100;++i)
    	{
                         if(str[i]==' ')
                         printf("\n");
                         else
    	                 printf("%s",str[i]);
        }
        getch();
    	return 0;
    }
  • 23-08-2010, 01:42:38
    #2
    #include <stdio.h>
    #include <string.h>
    
        int main(){
            
        char str[100]; 
        while(scanf(" %s",str)!=-1)
             printf("%s\n",str); 
        return 0;
    }
    ctrl + d ile sonlandırmalısınız programı
  • 23-08-2010, 08:31:53
    #3
    Sizin algoritmanız daha uzun olsa da çalışır.
    for(i=0;i<100;++i)

    Siyah yeri i++ ile değiştirmeniz gerekiyor.
    Başka bir önerim ise döngülerde gereksiz karakterleri kontrol etmemeniz.Kırmızı ile belirttiğim yere strlen(str) yazmanız yeterli olacaktır.

    Kolay gelsin.

    Sonuç;

    #include <stdio.h>
    #include <string.h>
    
        int main(){
            
        char str[100]; 
        int i;           
        gets(str); 
        for(i=0;i<strlen(str);i++)
    	{
                         if(str[i]==' ')
                         printf("\n");
                         else
    	                 printf("%c",str[i]);
        }
    	return 0;
    }
  • 28-08-2010, 15:29:38
    #4
    ZerCY adlı üyeden alıntı: mesajı görüntüle
    Sizin algoritmanız daha uzun olsa da çalışır.
    for(i=0;i<100;++i)

    Siyah yeri i++ ile değiştirmeniz gerekiyor.
    Başka bir önerim ise döngülerde gereksiz karakterleri kontrol etmemeniz.Kırmızı ile belirttiğim yere strlen(str) yazmanız yeterli olacaktır.

    Kolay gelsin.

    Sonuç;

    #include <stdio.h>
    #include <string.h>
    
        int main(){
            
        char str[100]; 
        int i;           
        gets(str); 
        for(i=0;i<strlen(str);i++)
    	{
                         if(str[i]==' ')
                         printf("\n");
                         else
    	                 printf("%c",str[i]);
        }
    	return 0;
    }
    for döngüsünde ++i ya da i++ yapmanızın hiç bir farkı yoktur.
  • 28-08-2010, 16:43:00
    #5
    darbetim adlı üyeden alıntı: mesajı görüntüle
    for döngüsünde ++i ya da i++ yapmanızın hiç bir farkı yoktur.

    for da yoktur ama kısa bir not gecelim arkadaşa şu şekilde fark oluşturabilir


    i = 1;
    z=0;
    z = i++;//burda 1 atıyacaktır
    aynı örnek farklı model

    i=1;
    z=0;
    z=++i; //burda 2 atayacaktır
  • 30-08-2010, 02:28:38
    #6
    #include <stdio.h>
    #include <conio.h>
    #include <string.h>

    int main()
    {
    char kelime[81],y[20];
    int i,uzunluk;

    printf("isminiz:");
    gets(kelime);
    uzunluk=strlen(kelime);


    if (kelime[0]!=' ') printf("%c",kelime[0]);
    for (i=1; i<=uzunluk-1;i++){
    if (kelime[i]!=' '&&kelime[i-1]!=' ') printf("%c",kelime[i]);
    else if (kelime[i]==' '&&kelime[i+1]!=' ') {printf("\n"); kelime[i]=kelime[i-1];}

    }
    getch();
    }
  • 30-08-2010, 02:49:39
    #7
    strlen komutu ile kaç karakter olduğunu öğrenip dönğüyü de ona göre yapabilirsin.
    int ksayi = strlen(str);
    for (int i = 0; i<=ksayi; i++)

    gibi.