İçeriğe geç
ShiftDelete.Net
Haber ara/ SDN'ye SorGiriş
Haber Akışı SDNTV İnceleme Forum Yapay Zeka Akıllı Telefon Elektrikli Otomobil Oyun ShiftDelete.Net Global Teknoloji Haberleri Mobil Otomobil Donanım Savunma Bilim Sosyal Medya İnternet Giyilebilir Teknoloji Rehber Ürünler Son dakika Yazarlar
  1. Ana sayfa
  2. Topluluk
  3. Programlama
  4. Programlama Dilleri
Programlama Dilleri

C Programlama

faruk541015.12.20131 cevap1.158 görüntüleme
2013'den beri1 mesaj
#1
Arkadaşlar bu kodu yazdım fakat aynı uzunluktaki kelimeleri yazmıyor sizce sorun nerde?


 
 char a[120],b[60],c[60];
    int i,j=0,f=0;
    printf("Bir Cumle Gir = ");
    gets(a);
    for(i=0;i<=strlen(a);i++)
    {
        if(a[i]!=32 && a[i]!='\0')
        b[j++]=a[i];
        else
        {
            b[j]='\0';
            if(strlen(b)>=f)
            {
                
                strcpy(c,b);
                f=strlen(b);
            }
               j=0;
            } 
    }
    printf("En Uzun Kelimeniz = ");
    puts(c);
    getch();
}
    return 0;
}


Cevaplar
2011'den beri505 mesaj
#2
Söylediğin algoritma ile bunu başaramazsın. strtok fonksiyonu ile şöyle birşeyler deneyebilirsin.

#include <stdio.h>
#include <string.h>
#include <conio.h>
int main(void)
{
    char *strings[30];
    char Policystr[4096] = "12 123 1234 123 abcd --- ****";
    char delims[] = " ";
    int maxlen = 0;

    int i = 0;
    strings[i] = strtok(Policystr, delims);
    while (strings[i] != NULL)
    {
        if (maxlen <= strlen(strings[i])) maxlen = strlen(strings[i]);
        i++;
        strings[i] = strtok(NULL, delims);
        

    }
    
    for ( int j = 0; j < i; j++ ){
        if (strlen(strings[j])==maxlen) printf("%s\n",strings[j]);
    }
    
    getch();
    return 0;
}

Cevabını yaz

Cevap yazmak için giriş yap ya da üye ol. Eski forum kullanıcı adın ve parolanla girebilirsin.