Manipulação de Arrays
Operações Básicas de Strings
Manipular arrays terminados em nulo envolve várias técnicas chave:
Cálculo do Comprimento da String
#include <stdio.h>
#include <string.h>
int main() {
char text[] = "LabEx Programming";
size_t length = strlen(text);
printf("Comprimento da string: %zu\n", length);
return 0;
}
Copiando Strings
#include <stdio.h>
#include <string.h>
int main() {
char source[] = "Hello, World!";
char destination[50];
strcpy(destination, source);
printf("String copiada: %s\n", destination);
return 0;
}
Técnicas de Manipulação Avançadas
Concatenando Strings
#include <stdio.h>
#include <string.h>
int main() {
char first[50] = "LabEx ";
char second[] = "Programming";
strcat(first, second);
printf("String combinada: %s\n", first);
return 0;
}
Estratégias de Gestão de Memória
graph TD
A[Alocar Memória] --> B[Executar Operação]
B --> C{Verificar Limites}
C -->|Seguro| D[Modificar Array]
C -->|Inseguro| E[Possível Estouro de Buffer]
Métodos de Manipulação Comuns
| Método |
Função |
Descrição |
strlen() |
Comprimento |
Calcula o comprimento da string |
strcpy() |
Copiar |
Copia uma string para outra |
strcat() |
Concatenar |
Combina duas strings |
strncpy() |
Copiar Segura |
Copia com limite de comprimento |
Exemplo de Manipulação Segura
#include <stdio.h>
#include <string.h>
void safe_copy(char *dest, size_t dest_size, const char *src) {
strncpy(dest, src, dest_size - 1);
dest[dest_size - 1] = '\0'; // Garantir terminação nula
}
int main() {
char buffer[10];
safe_copy(buffer, sizeof(buffer), "LabEx Rocks!");
printf("Copiado com segurança: %s\n", buffer);
return 0;
}
Considerações Chave
- Sempre verifique os tamanhos dos buffers.
- Utilize funções de manipulação de strings seguras.
- Evite estouros de buffer.
- Certifique-se da terminação nula após as modificações.
Dominando essas técnicas, os desenvolvedores podem manipular arrays terminados em nulo de forma eficiente e segura na programação C.