Aşağıdaki program, doğrudan bellek okuma yöntemi ile C dili için substr() fonksiyonu oluşturarak kullanır.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char* bg_substr(const char *src, int pos, int len);
int main()
{
char cdizi[] = "Karakter dizisi içinde işlem";
/* 9 değeri karakter dizisi içinde 0'dan başlayarak verilir ve 10.karaktere karşılık gelir. */
char* substr = bg_substr(cdizi, 9, 6);
printf("%s\n", substr);
/* Fonksiyon içinde tahsis edilen dinamik belleği boşaltma */
free(substr);
return 0;
}
/* Karakter dizi içinde başlangıç indeksi (pos) verilen belirli uzunlukta (len) dizi okuma */
char *bg_substr(const char *src, int pos, int len)
{
char *dizi;
int c;
if ((pos+len)>strlen(src)) return 0;
dizi = (char*) malloc(sizeof(char) * (len+1));
if (dizi==NULL) return NULL;
for (c=0; c<len; c++) {
*(dizi+c) = *(src+pos);
src++;
}
*(dizi+c) = '\0';
return dizi;
}
Yukarıdaki örnekte, program aşağıdaki satırı ekrana yazar:
dizisi