void substrcpy(char *target, const char *src, int start, int length);
26.03.2010 - 17:00 tarihinde nerg gönderdi
İkinci parametresinde bulunan karakter disizinin start indisli elemanından başlayarak length tane elemanını, birinci parametresindeki adreste bulunan karakter dizisine kopyalar.
Kaynak kod:
#include <stdio.h> void substrcpy1(char *target, const char *src, int start, int length); void substrcpy2(char *target, const char *src, int start, int length); void substrcpy3(char *target, const char *src, int start, int length); void substrcpy4(char *target, const char *src, int start, int length); int main(void) { char a[100] = "C/C++ sample code archive."; char b[100]; substrcpy4(b, a, 0, 5); printf("\n%s", b); return 0; } /*************************************************************************/ void substrcpy1(char *target, const char *src, int start, int length) { int i, j; for (j = 0, i = start; i < start + length && src[i] != '\0'; i++, j++) target[j] = src[i]; target[j] = '\0'; } /*************************************************************************/ void substrcpy2(char *target, const char *src, int start, int length) { const char *p = src + start; const char *q = src + start + length; for (; p < q && *p != '\0'; p++, target++) *target = *p; *target = '\0'; } /*************************************************************************/ void substrcpy3(char *target, const char *src, int start, int length) { int i, j; for (j = i = 0; src[i] != '\0'; i++) { if (i < start) continue; if (j >= length) break; target[j] = src[i]; j++; } target[j] = '\0'; } /*************************************************************************/ void substrcpy4(char *target, const char *src, int start, int length) { int i; for (i = 0; src[i] != '\0' && i < length; i++) target[i] = src[i + start]; target[i] = '\0'; }
Etiketler:
