folder Tahribat.com Forumları
linefolder C - C++
linefolder C Char Array Vs String Karşılaştırmak



C Char Array Vs String Karşılaştırmak

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    nurulmac11
    nurulmac11's avatar
    Kayıt Tarihi: 04/Ağustos/2012
    Erkek

    merhaba

    akşam 19 da sınavım var çalışırken bi yerde sağlam takıldım

    kodum aşağıdaki gibi 

    int main() {
    	TC_BEGIN;
    	int getLength(char str[]){
    			int i;
    			for(i = 0;str[i] != '\0';i++);
    			return i-1;
    		}
    
    	int strcompare(char alpha[], char bravo[]){
    			if(getLength(alpha) == getLength(bravo)){
    				//uzunluklar ayni
    				int i;
    				for(i = 0;i <= getLength(alpha);i++){
    					if(alpha[i] != bravo[i]){
    						return 0;
    					}
    				}
    				return 1;
    			}else{
    				//uzunluklar farkli.ayni olamazlar
    				return 0;
    			}
    			return -1;
    		}
    	char c[500], h[500] = {'t','e','s','t','\0'};
    	gets(c);
    	printf("%d",strcompare(c,h));
    
    	TC_END;
    	return 0;
    }

    amacım kullanıcının girdiği veriyi elimdeki kelimeyle karşılaştırmak. aynısımı ona bakmak. kullanıcının girdiği iki veriyi doğru biçimde karşılaştırıyorum. gets'le iki kere "test" alınca mesela aynı olduğunu anlayabiliyorum. ama kullanıcının girdiği kelimeyi elimdeki kelimeyle karşılaştırmam gerek. bunu nasıl yapabilirim ?

  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    zeybekustasi
    zeybekustasi's avatar
    Kayıt Tarihi: 24/Mayıs/2012
    Erkek

    Karşılaştırma fonksiyonlarını senin yazman mı gerekli ?

  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MhmdAlmz
    MhmdAlmz's avatar
    Kayıt Tarihi: 09/Ağustos/2015
    Erkek

    Hocam mantığını söyleyeyim.

    kllanıcıdan string ifadeyi al char diziye at

    Sonra , dizinin uzunluğunu bul.

    Dizinin uzunluğunu bulduktan sonra karşılaştırma yap bi döngü icerisinde

    if(DiziOne[i]!=DiziTwo[i])

    {

    printf("KelimeEşit Değil");

    break;

    }

     

     

    gerisi sana kaldı mobil olduğum için annca bu kadar :D

     

     

    MhmdAlmz tarafından 12/May/16 15:00 tarihinde düzenlenmiştir
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    nurulmac11
    nurulmac11's avatar
    Kayıt Tarihi: 04/Ağustos/2012
    Erkek
    MhmdAlmz bunu yazdı

    Hocam mantığını söyleyeyim.

    kllanıcıdan string ifadeyi al char diziye at

    Sonra , dizinin uzunluğunu bul.

    Dizinin uzunluğunu bulduktan sonra karşılaştırma yap bi döngü icerisinde

    if(DiziOne[i]!=DiziTwo[i])

    {

    printf("KelimeEşit Değil");

    break;

    }

     

     

    gerisi sana kaldı mobil olduğum için annca bu kadar :D

     

     

    @mehmetalmaz hocam ben verdigim kodda farkli birşeymi yaptım ?

    @zeybekustası hocam genelde bizim yazmamızı istiyolar :/ o yüzden uğraşıyorum. string.h kullanamıyoruz

  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    DrKill
    DrKill's avatar
    Kayıt Tarihi: 10/Mart/2004
    Erkek
    int karsilastir(const char *alpha, const char *bravo)
    {
    int sonuc = -1;
    for ( ; *alpha == *bravo; alpha++, bravo++)
    	if (*alpha == '\0')
    	    return 0;
    return sonuc;
    }

     

    eşitse 0 döner yoksa -1 döner. Az satırda işini çözmeye çalış. getlengh felan gerek yok.

     

    Ekleme: Küçük bir hata yapmışım şimdi çalışıyor. Düzelttim.

    DrKill tarafından 12/May/16 15:24 tarihinde düzenlenmiştir
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    NmC
    NmC's avatar
    Kayıt Tarihi: 23/Kasım/2008
    Erkek

    Hocam su an verdigin kod zaten o isi yapmiyor mu?

    c yi kullanicidan almisin. h'nin icinde de "test" var. Karsilastiriyorsun. Calismiyor mu bu kod?

     

  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MhmdAlmz
    MhmdAlmz's avatar
    Kayıt Tarihi: 09/Ağustos/2015
    Erkek
    nurulmac11 bunu yazdı
    MhmdAlmz bunu yazdı

    Hocam mantığını söyleyeyim.

    kllanıcıdan string ifadeyi al char diziye at

    Sonra , dizinin uzunluğunu bul.

    Dizinin uzunluğunu bulduktan sonra karşılaştırma yap bi döngü icerisinde

    if(DiziOne[i]!=DiziTwo[i])

    {

    printf("KelimeEşit Değil");

    break;

    }

     

     

    gerisi sana kaldı mobil olduğum için annca bu kadar :D

     

     

    @mehmetalmaz hocam ben verdigim kodda farkli birşeymi yaptım ?

    @zeybekustası hocam genelde bizim yazmamızı istiyolar :/ o yüzden uğraşıyorum. string.h kullanamıyoruz

    Hocam kodda bi sıkıntı yok ki ben göremedim istediğini tam anlamadım aslında . Ayrı bir yapı mı istiyorsun algoritmasının mı soruyorsun :/ 

  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    nurulmac11
    nurulmac11's avatar
    Kayıt Tarihi: 04/Ağustos/2012
    Erkek
    NmC bunu yazdı

    Hocam su an verdigin kod zaten o isi yapmiyor mu?

    c yi kullanicidan almisin. h'nin icinde de "test" var. Karsilastiriyorsun. Calismiyor mu bu kod?

     

    karsilastirinca 0 veriyo hocam :| 1 vermesini bekliyorum

    sonuna \n \0 ekleyip de denedim sonuc ayni

    drkill deniyorum hocam saolasin

  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    YeniHarman
    YeniHarman's avatar
    Kayıt Tarihi: 17/Haziran/2012
    Erkek

    şunun gibi olabilir: https://ideone.com/Zq6s1Y

     

  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    nurulmac11
    nurulmac11's avatar
    Kayıt Tarihi: 04/Ağustos/2012
    Erkek
    YeniHarman bunu yazdı

    şunun gibi olabilir: https://ideone.com/Zq6s1Y

     

    yine yemedi ya, benim fonksiyonda kullanicinin girdigi iki stringi karsilastiriyo sorun yok

    ama sorulardan biri 'kullanici "end of story" yazana kadar kullanıcıdan veri almak" tarzı bişey olacakmış. bu yüzden girilen şey "end of story" mi onu kontrol etmem lazım. onu yapamıyorum bi türlü

  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    YeniHarman
    YeniHarman's avatar
    Kayıt Tarihi: 17/Haziran/2012
    Erkek
    nurulmac11 bunu yazdı
    YeniHarman bunu yazdı

    şunun gibi olabilir: https://ideone.com/Zq6s1Y

     

    yine yemedi ya, benim fonksiyonda kullanicinin girdigi iki stringi karsilastiriyo sorun yok

    ama sorulardan biri 'kullanici "end of story" yazana kadar kullanıcıdan veri almak" tarzı bişey olacakmış. bu yüzden girilen şey "end of story" mi onu kontrol etmem lazım. onu yapamıyorum bi türlü

    Hım. Öncelikle scanf ile boşluklar alınamaz (normal kullanımla). Şöyle bir şey: https://ideone.com/04vFyr

     

Toplam Hit: 451 Toplam Mesaj: 16
sınav c dili c sınavı