folder Tahribat.com Forumları
linefolder C - C++
linefolder C - String Parçalamak [Yardım]



C - String Parçalamak [Yardım]

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ZoRKaYa
    ZoRKaYa's avatar
    Kayıt Tarihi: 18/Eylül/2007
    Erkek

    Merhabalar hepinize öncelikle :)

    Elimizde bir string var diyelim ki;

    char b[50];

    Bunun içerisine veri olarak: "A55B2C41" yazıldı. Dolayısıyla b[0]="A", b[1]="5", b[2]="5", ... diye oldu.

    ben bunu şu şekilde nasıl ayırabilirim:

    operation="A" string olacak şekilde

    operant=55 integer olacak şekilde

    bazı işlemleri yaptıktan sonra;

    operation="B" string olacak şekilde

    operant=2 integer olacak şekilde.

     

    Umarım açıklayıcı olmuştur. Çok teşekkür ederim şimdiden :)

     


    echo "imzanız özel karakter içermemelidir";
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Zeytun-i
    Zeytun-i's avatar
    Kayıt Tarihi: 15/Ağustos/2012
    Erkek

    Ulan G ingilzcede Ci gibi okunuyor ya, G STRİNG PARÇALAMAK DİYE OKUDUM Yeminle ahaha :D

    İngilizce çalışmanın kötü yönleri ( nice yılları, nays yıllar diye okudum ya yine bir ara )

    Hocam güldüm sayende sağol ya.


    https://www.uvvam.com | Dünya Su Sporcuları Platformu | https://www.instagram.com/uvvam/
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    DeadSoul
    DeadSoul's avatar
    Kayıt Tarihi: 12/Mayıs/2012
    Erkek

    ctype.h

  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    sRcN
    sRcN's avatar
    Kayıt Tarihi: 24/Ağustos/2009
    Erkek

    valla konuyu bende g-string diye okuuyup gelenlerdenim vay sapık vay diyerekten geldim göt oldum :D


    Wordpress - SEO & Digital Marketing
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    guru
    guru's avatar
    Kayıt Tarihi: 30/Mart/2007
    Erkek
    	char b[] = "A23B55C2";
    	char str[2] = {0}, *ptr = b;
    	int op;
    
    	for (;*ptr;){
    
    		str[0] = *ptr;
    
    		for (++ptr, op = 0; *ptr != '\0' & (*ptr >= '0' & *ptr <= '9'); ++ptr)
    			op *= 10, op += (*ptr - '0');
    
    		//burda islemleri yapabilirsin
    		printf("%s %d\n", str, op);
    
    	}

    ..
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ZoRKaYa
    ZoRKaYa's avatar
    Kayıt Tarihi: 18/Eylül/2007
    Erkek
    GrN bunu yazdı
    	char b[] = "A23B55C2";
    	char str[2] = {0}, *ptr = b;
    	int op;
    
    	for (;*ptr;){
    
    		str[0] = *ptr;
    
    		for (++ptr, op = 0; *ptr != '\0' & (*ptr >= '0' & *ptr <= '9'); ++ptr)
    			op *= 10, op += (*ptr - '0');
    
    		//burda islemleri yapabilirsin
    		printf("%s %d\n", str, op);
    
    	}

    Çok teşekkür ederim. Tam olarak istediğim şey bu fakat bunu pointer kullanmadan nasıl yapabilirim. Biraz açıklayabilir misin :) Sağol tekrar


    echo "imzanız özel karakter içermemelidir";
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    zeitgeist
    zeitgeist's avatar
    Kayıt Tarihi: 01/Kasım/2003
    Erkek

    g-string mi hobaa yanlış alarm size kolay gelsin 

  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    guru
    guru's avatar
    Kayıt Tarihi: 30/Mart/2007
    Erkek
    	char b[] = "A23B55C2";
    	char str[2] = {0};
    	int op;
    
    	for (int i = 0; b[i]; ){
    
    		str[0] = b[i];
    
    		for (++i, op = 0; b[i] != '\0' & (b[i] >= '0' & b[i] <= '9'); ++i)
    			op *= 10, op += (b[i] - '0');
    
    		//burda islemleri yapabilirsin
    		printf("%s %d\n", str, op);
    	}
    


    hocam pointer kullanmadan da yukaridaki sekilde yapabilirsin elbette

    hocam str isimli 2 elemanli char arrayin var , bunun birincisi senin operation code dedigin karakteri tutuyo digeri de '\0' , boylece her operation u string seklinde elde etmis oluyosun. icteki for dongusude sayi olan karakterleri '0' <= b[i] <= '9' toplayip op degiskenine integer olarak atiyo. icteki for dongusunden ya yazinin sonuna gelindigi icin '\0', yada '0', '9' araligindan sasildiginda cikiliyo. eger yazinin sonuna gelindiysek , distaki for bunu kontrol ediyo zaten, eger gelinmediyse de bi sonraki karakter senin siradaki operation code ' un oluyo.

    hayatimda bole kotu bi aciklama gormedim :), ins anlatabilmisimdir


    ..
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ZoRKaYa
    ZoRKaYa's avatar
    Kayıt Tarihi: 18/Eylül/2007
    Erkek
    GrN bunu yazdı
    	char b[] = "A23B55C2";
    	char str[2] = {0};
    	int op;
    
    	for (int i = 0; b[i]; ){
    
    		str[0] = b[i];
    
    		for (++i, op = 0; b[i] != '\0' & (b[i] >= '0' & b[i] <= '9'); ++i)
    			op *= 10, op += (b[i] - '0');
    
    		//burda islemleri yapabilirsin
    		printf("%s %d\n", str, op);
    	}
    


    hocam pointer kullanmadan da yukaridaki sekilde yapabilirsin elbette

    hocam str isimli 2 elemanli char arrayin var , bunun birincisi senin operation code dedigin karakteri tutuyo digeri de '\0' , boylece her operation u string seklinde elde etmis oluyosun. icteki for dongusude sayi olan karakterleri '0' <= b[i] <= '9' toplayip op degiskenine integer olarak atiyo. icteki for dongusunden ya yazinin sonuna gelindigi icin '\0', yada '0', '9' araligindan sasildiginda cikiliyo. eger yazinin sonuna gelindiysek , distaki for bunu kontrol ediyo zaten, eger gelinmediyse de bi sonraki karakter senin siradaki operation code ' un oluyo.

    hayatimda bole kotu bi aciklama gormedim :), ins anlatabilmisimdir

    Çok güzel anlattın hocam teşekkür ederim :) Bu arada ne kadar sapık varmış arkadaş ya :D


    echo "imzanız özel karakter içermemelidir";
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ZoRKaYa
    ZoRKaYa's avatar
    Kayıt Tarihi: 18/Eylül/2007
    Erkek
    	while (str[i]!='\0'){
    			op=str[i];
    			i++;
    			while (isdigit(str[i])){
    				number*=10; number+=(str[i]-'0');
    				i++;
    			}
    			printf("%c : %d \n" , op, number);
    			number=0;
    			
    			
    	}

     

    Bu da benim yazdığım kod olsun bakalım bu bilgiler ışığında (: Elbet bir gün bir insan evladının işine yarar


    echo "imzanız özel karakter içermemelidir";
Toplam Hit: 3317 Toplam Mesaj: 10