Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Dize işlevleri, uygulamalara karakter dizelerini kopyalama, karşılaştırma, sıralama, biçimlendirme ve dönüştürme araçlarının yanı sıra bir dizedeki her karakterin karakter türünü belirleme araçları sağlar. Bu karakter kümeleri uygulamanın çalıştırıldığı işletim sistemi tarafından destekleniyorsa, tüm dize işlevleri tek bayt, çift bayt ve Unicode karakter kümelerini destekler.
Güvenlik Uyarısı: Dize işlevlerinin yanlış kullanılması uygulamanız için güvenlik sorunlarına neden olabilir. Bu genellikle uygulamanıza yönelik bir hizmet reddi saldırısına veya bir saldırgandan yürütülebilir kod eklenmesine izin veren bir arabellek taşması içerir. Strsafe işlevleri, dizelerin daha güvenli işlenmesini sağlar ve uygulamanız için daha iyi güvenlik için önerilir. Bu işlevler hakkında daha fazla bilgi için bkz. Strsafe.h İşlevlerini Kullanma.
Bu bölümde aşağıdaki konular ele alınmaktadır.
- C Run-Time Dize İşlevleri ile Karşılaştırması
- Dize Kaynakları
C Run-Time Dize İşlevleri ile Karşılaştırma
Birçok dize işlevi, standart C çalışma zamanı (CRT) kitaplığından tanıdık dize işlevlerini yineler veya geliştirir. Geliştirmelerin çoğu dize işlevlerinin Unicode veya genişletilmiş karakter kümeleriyle çalışmasını sağlar. Aşağıdaki tabloda CRT işlevleri, Windows işlevleri (CRT işlevlerinin aksine Unicode'ı destekleyen) ve StrSafe işlevleri gösterilmektedir.
| CRT String Fonksiyonu | Windows Dize İşlevi | StrSafe İşlevi |
|---|---|---|
| strcat | lstrcat | |
| strcmp | lstrcmp | (eşdeğer işlev yok) |
| strcpy | lstrcpy |
|
| strlen | lstrlen |
Örneğin strlen işlevi her zaman bir dizedeki bayt sayısını döndürür, ancak lstrlen işlevi, işlevin ANSI sürümleri için baytları veya Unicode sürümleri için WCHAR değerleriniTCHAR değerlerinin sayısını döndürür.
Aşağıdaki dize işlevleri, tolower ve upper gibi standart C işlevlerinden farklıdır ve bunlar bir karakter kümesindeki herhangi bir karakter üzerinde çalışır. Örneğin, CharLower işlevini kullanarak, bir uygulama umlaut (Ü) içeren büyük harfli U harfini küçük harfe (ü) dönüştürebilir. Karakter kümeleri hakkında daha fazla bilgi için bkz. Tek Baytlı Karakter Kümeleri.
| Fonksiyon | Açıklama |
|---|---|
| CharLower | Bir karakteri veya dizeyi küçük harfe dönüştürür. |
| CharLowerBuff | Karakter dizesini küçük harfe dönüştürür. |
| CharNext | Dizedeki bir sonraki karaktere geçer. |
| CharPrev | Bir dizedeki önceki karaktere gider. |
| CharUpper | Bir karakteri veya dizeyi büyük harfe dönüştürür. |
| CharUpperBuff | Dizeyi büyük harfe dönüştürür. |
Aşağıdaki dize işlevleri, kullanıcı tarafından seçilen dilin semantiğine göre bir karakter hakkında belirlemeler yapar. Bu işlevler Unicode etkindir.
| Fonksiyon | Açıklama |
|---|---|
| IsCharAlpha | Bir karakterin alfabetik olup olmadığını belirler. |
| IsCharAlphaNumeric | Bir karakterin alfasayısal olup olmadığını belirler. |
| IsCharLower | Bir karakterin küçük harf olup olmadığını belirler. |
| IsCharUpper | Bir karakterin büyük harf olup olmadığını belirler. |
Aşağıdaki tabloda standart C çalışma zamanı (CRT) işlevlerinin Unicode uzantıları gösterilmektedir. Daha önce belirtildiği gibi, StrSafe işlevleri dizelerin daha güvenli işlenmesini sağlar ve uygulamanız için daha iyi güvenlik için önerilir.
| Standart CRT işlevi | Dize İşlevi | StrSafe İşlevi |
|---|---|---|
| sprintf | wsprintf | |
| vsprintf | wvsprintf |
|
Dize Kaynakları
Kaynaklarda karakter dizelerini koruyan bir uygulama, en az çabayla yeni dillere çevrilebilir. Kaynak modüllerdeki dizeleri aramak yerine, kaynak dosyasındaki dizeleri çevirip uygulamayı yeniden bağlayabilirsiniz. Ayrıca, dize kaynaklarının kullanılması aynı kaynak dosyalardan uygulamanın Unicode ve Unicode olmayan sürümlerinin oluşturulmasını kolaylaştırır.
LoadString işlevi, uygulamanın yürütülebilir dosyasından bir dize kaynağı yükler. FormatMessage işlevi bir dize kaynağını yükler ve dizeye eklenmiş olabilecek biçimlendirme seçeneklerini yorumlar.
İkili biçimdeki kaynaklar Unicode biçiminde depolanır. Kaynaklar yüklenirken, uygulamalar kaynakları Unicode verileri olarak almak için kaynak işlevlerinin Unicode sürümünü (örneğin LoadStringW) kullanabilir.
16 bit dize kaynakları için uzunluk üst sınırı 255 karakterdir. 32 bit dize kaynakları için uzunluk üst sınırı 65535 karakterdir.