Char dizisini stringe çevirme

Başlatan ertsen, 07 Aralık 2011, 16:45:22

ertsen

Merhaba arkadaşlar,

CCS C de

char isim[]={'D','E','N','E','M','E'};

şeklindeki bir diziyi "DENEME" şeklinde bir stringe nasıl çevirebilirim?


mufitsozen

#1
Alıntı yapılan: ertsen - 07 Aralık 2011, 16:45:22
Merhaba arkadaşlar,

CCS C de

char isim[]={'D','E','N','E','M','E'};

şeklindeki bir diziyi "DENEME" şeklinde bir stringe nasıl çevirebilirim?

Herhangi bir ANSI C derleyicisinde :

             char isim[]={'D','E','N','E','M','E'};
yerine
             char isim[]={'D','E','N','E','M','E','\0'};
yazarsaniz
            char *isim="DENEME" demekle ayni sey olur.

C dilinde string islemleri char pointerlar ile yapilir.  bundan dolayi isim degiskenin gosterdigi yerde "DENEME" dizisi varmi diye kontrol etmek icin:

            if ( 0==strcmp(isim, "DENEME")) {
                 /* esit ise yapilacak islemler */
                 ............
            }
            else {
                 /* esit degil ise yapilacak islemler */
                  ...........
            }

Kolay gelsin.
Aptalca bir soru yoktur ve hiç kimse soru sormayı bırakana kadar aptal olmaz.

ertsen

mufitsozen ve gerbay hocalarım cevabınız için teşekkür ederim.
Aslında şu anda 2 PIC'i haberleştirmeye çalışıyorum ve char olarak getc komutu ile gelen veriyi diziye atıp LCD de gösteriyorum ancak karakter karakter LCD ye gönderebiliyorum. Benim istediğim bir string değişkenine atabilmekti böylece tek seferde LCD'ye yazabilecektim. Anladığım kadarıyla ya dizi şeklinde yazdırmaya devam edeceğim yada pointer kullanacağım.

Teşekkür ederim.

mufitsozen

Alıntı yapılan: ertsen - 07 Aralık 2011, 17:30:55
mufitsozen ve gerbay hocalarım cevabınız için teşekkür ederim.
Aslında şu anda 2 PIC'i haberleştirmeye çalışıyorum ve char olarak getc komutu ile gelen veriyi diziye atıp LCD de gösteriyorum ancak karakter karakter LCD ye gönderebiliyorum. Benim istediğim bir string değişkenine atabilmekti böylece tek seferde LCD'ye yazabilecektim. Anladığım kadarıyla ya dizi şeklinde yazdırmaya devam edeceğim yada pointer kullanacağım.

Teşekkür ederim.

Birsey değil,

Kisa bir hatirlatma, aslinda ilk bakista belli olmuyor gibi gozuksede, C dilinde DIZI ve POINTER ayni seydir.  Bu yuzden "string" islemleri yapmakta kolaylik olmasi icin C standard libraryde str onek li bir cok fonksiyon vardir (strcpy, strcmp, strchr, strcat, strlen vs gibi)

kolay gelsin.
Aptalca bir soru yoktur ve hiç kimse soru sormayı bırakana kadar aptal olmaz.

JKramer

Alıntı yapılan: ertsen - 07 Aralık 2011, 17:30:55
Benim istediğim bir string değişkenine atabilmekti böylece tek seferde LCD'ye yazabilecektim. Anladığım kadarıyla ya dizi şeklinde yazdırmaya devam edeceğim yada pointer kullanacağım.
gerbay'ın verdiği örnek tam istediğiniz şey aslında.