Ferramentas de Utilizador

Ferramentas de Site


dev_geral:c:copia_strings

Função: s_copy

Bem, desenvolvi uma função parecida com a strcpy só que esta tem a pequena mas grande diferença de ser segura. O que ela faz é que se o array de caracteres que a vai receber for de menor capacidade do que aqueles que vão ser copiados ela pára. No exemplo eu pus um caso em que ela pára. Ela tem os seguintes parâmetros: s_copy(string_destino, string_origem, numero_de_caracteres_suportados_pela_string_destino). Espero que usem esta função :P

#include <stdio.h>
#include <string.h>
 
int s_copy(char *, char *, int);
 
int main(void){
        char str1[10] = "ola";
        char str2[20] = "AAAAAAAAAAAAAAAAA";
        s_copy(str1,str2,10);
        printf("%sn", str1);
        return 0;
}
 
int s_copy(char *s_1, char *s_2, int len){
        int s_len = strlen(s_2);
        if(s_len >= len){
                printf("Função parada, perigo de buffer overflown");
                return(0);
        }
        while(*s_2 != '0'){
                *s_1 = *s_2;
                s_1++;
                s_2++;
        }
        *s_1 = '0';
        return(0);
}
dev_geral/c/copia_strings.txt · Esta página foi modificada pela última vez em: 2018/05/14 21:37 (Edição externa)