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 ?


    black implies white, self implies other, life implies death.
  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 ?


    https://www.youtube.com/watch?v=WC3-71NKwPw
  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

    Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu önünden (ahiret dünyadan) daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken (doğru) yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? Öyle ise, sakın yetime kahretme (onu horlama)! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!
  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


    black implies white, self implies other, life implies death.
  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

    Bu imzayı her gördüğünüzde 4gb kotanızın 0,00000358559191226959228515625 azalmaktadır. Bilerek ve istenerek bu imza yapılmıştır. Amaç kotanızı sömürmektir
  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?

     


    There are 10 types of people in the world. Those who knows binary and those who dont...
  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 :/ 


    Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu önünden (ahiret dünyadan) daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken (doğru) yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? Öyle ise, sakın yetime kahretme (onu horlama)! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!
  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


    black implies white, self implies other, life implies death.
  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

     


    Olaylara karışmayın!
  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ü


    black implies white, self implies other, life implies death.
  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

     


    Olaylara karışmayın!
Toplam Hit: 3836 Toplam Mesaj: 16
sınav c dili c sınavı