All for Joomla All for Webmasters
Yapabilecekleriniz hayal gücünüz kadar geniştir.
STM32
ARDUINO
ONUR KÖSE
Kişisel Blog

Arduino String Fonksiyonları

Bildiğimiz gibi string(dizi) birden fazla karakteri hafızada tutmaya yarayan bir değişken tipidir. String parçalama, birleştrime, istenilen harfi bulma/silme/değiştirme gibi özellikler sıkça kullanılmaktadır.

 

İlk olarak bir string nasıl tanımlanır buna bakacak olursak;

String değişkenadı = “değişken içeriği”

***Dikkat edilmesi gerek yazım kuralı olarak değişken tipi olan String yazarken baş harfinin büyük olmasıdır. Aksi halde derlenirken “error: ‘string’ does not name a type” içerikli hata ile karşılaşırsınız.

 

String Index Numarasını Nedir

Index demek bir kelimede bulunan harfin kaçıncı konumda olduğudur. Program index numaralandırmaya 0 dan başlar.

Örneğin “Atatürk” kelimesinin;

0. Index = ‘A’,

1. Index = ‘t’,

2. Index = ‘a’,

3. Index = ‘t’,

4. Index = ‘ü’,

5. Index = ‘r’,

6. Index = ‘k’

 

String Boyutunu Öğrenmek

String boyutunu öğrenmek için tanımlanan String değişkeninin sonuna .length() foksiyonu eklenir.

Örnek;

Program çalışıtığı anda seri port ekranında “4” yazacaktır. Size String değişkeninizin uzunluğunu verir.

 

String İçerisinde İstenilen Index Karakterini Bulmak

String içerisinde belirli bir Indexin kontrolünü yapmanız veya o Indexi öğrenmeniz gerekiyor. Bunun için .charAt(Index No) fonksiyonu ile istediğiniz Index numarasını göndererek o Indexde ki karakteri bulmanızı sağlar.

Programı incelersek seri port ekranından sırayla 0, 3, 5 nolu Index de bulunan harfleri gönderecektir.

a b c d e f g

0 1 2 3 4 5 6

0. Index = ‘a’,

3. Index = ‘d’,

5. Index = ‘f’

Dolayısıyla Seri port ekranında yanyana ace yazacaktır.

***String uzunluğu 5 karakter olsun. Ancak biz String uzunluğunu bilmiyoruz. Son karakter Indexi 4 olacaktır. Biz 5. Index numarasını fonksiyona gönderdik. Bize hiçbir cevap dönmez.

 

String İçerisinde İstenilen Karakterin Index Numarasını Bulmak

Bu fonksiyonda bir önceki istenilen Indexin karakterini bulmanın tam tersidir. İstenilen harfi gönderiyoruz sonuç olarak da o karakterin Index numarası dönüyor. Bu işlemi .indexOf(‘karakater’) fonksiyonu ile yapıyoruz.

P r o g r a m

0 1 2 3 4 5 6

Program çıktısında

P karkaterinin Index Numarası = 0,

g karkaterinin Index Numarası = 3,

m karkaterinin Index Numarası = 6

Seri port ekranında 036 çıktısını görülecektir.

***Bu fonksiyonda dikkat edilmesi gerekenler;

“Program” yazısında iki adet r harfi bulunmaktadır. test.indexOf(‘r’) komutunu gönderseydik cevap ne dönecekti? ‘r’ harfi hem 1 hemde 4 numaralı indexde bulunmaktadır. indexOf() foksiyonu karakter bulma işini for döngüsü ile yapmaktadır. Sırayla Index numaralarını kontrol eder. Karakteri bulduğu anda döngüden çıkarak karakteri bize gönderir. Dolayısıyla bulduğu karakterden sonraki karakterleri kontrol etmez. Yani sonuç 1 dönecektir.

 

Program bu şekilde çalıştırılsaydı;

a karakterinin Index Numarası = 5,

b karakterinin Index Numarası = yok,

s karakterinin Index Numarası = yok

Fonksiyon karakteri bulamaz ise sonuç olarak “-1” değeri dönderir.

 

String İçerisinde Belirli Indexler Arasını Almak

Bu fonksiyon benim en çok kullandığım özellikle Seri port ile iletişim yapıldığında olmazsa olmaz bir fonksiyondur. Bu fonksiyon ile String içeriğinin istediğimiz kısmını alabiliriz. Bu işlemi gerçekleştiren komut .substring(Başlangıç, Index, BitişIndex) fonksiyonudur.

M e r h a b a

0 1 2 3 4 5 6

***Komut Başlangıç Indexini dahil eder, Bitiş Indexini dahil Etmez. Yani 0 ve 1 Nolu Indexleri alarak Seri port ekranına “Me” çıktısını yazar.

Bir kaç örnek vermek gerekirse;

 

Diyelim ki değişkenimize Seri portdan veri geliyor ancak biz bu verinin uzunluğunu bilmiyoruz. Sadece sondaki 2 karakteri silmek istiyoruz. Bunun için

.substring(0, son karakter-2) şeklinde bir komut yazmamız gerek. Örnek ile incelersek;

test adlı değişkenimizin içeriği “veri01” biz bu “01” kısımını silmek istiyoruz.

komutu ile “veri01” karakterlerinin 0. Indexinden son – 2 yani 5-2 = 3. Indexine kadar olan kısım alınıp tekrar test adlı değişkene atanmıştır.

test içeriği “veri01” den düzenlenip “veri” olarak ekrana yazdırılmıştır.

About the author

2 Responses

Leave a Reply to fuat Cancel Reply

Merhaba

Bloguma Hoşgeldiniz.

Kategoriler

Çevrimiçi Kişiler

2 Misafir
%d blogcu bunu beğendi: