Edição didática em português. O código e suas saídas preservam o original.
Strings em C
Trabalhe com o terminador zero, a capacidade do buffer e as funções de string.h.

Uma string C é uma sequência de caracteres terminada por um byte zero. O buffer precisa de espaço para esse terminador além do texto. strlen conta caracteres anteriores ao terminador; não conhece por si só a capacidade do objeto.
fgets recebe a capacidade e pode preservar a quebra de linha. Ao copiar ou concatenar, verifique o espaço disponível e a terminação. Nunca escreva em um literal de string nem use entrada sem limite para preencher um buffer fixo.
Compare o conteúdo com strcmp, não os endereços com ==. Teste uma string vazia, uma entrada longa e espaços internos. Processar byte por byte não equivale necessariamente a contar caracteres Unicode.
Código C
#include <stdio.h>
#include <string.h>
int main(void) {
printf("=== C Strings: Declaration & Manipulation ===\n\n");
// 1. Mutable stack array
char greeting[32] = "Hello";
char name[] = "Programmer";
printf("Initial greeting: %s (Length: %zu)\n", greeting, strlen(greeting));
printf("Name: %s (Length: %zu)\n", name, strlen(name));
// 2. Safe string concatenation with snprintf
char full_message[64];
snprintf(full_message, sizeof(full_message), "%s, %s! Welcome to C.", greeting, name);
printf("Concatenated: %s\n", full_message);
// 3. In-place string mutation
greeting[0] = 'J'; // "Jello"
printf("Modified greeting: %s\n", greeting);
// 4. String comparison
char word1[] = "apple";
char word2[] = "banana";
int cmp = strcmp(word1, word2);
if (cmp < 0) {
printf("\"%s\" comes before \"%s\" alphabetically (cmp = %d)\n", word1, word2, cmp);
}
// 5. String reversal in-place
char text[] = "Online C Compiler";
size_t len = strlen(text);
for (size_t i = 0; i < len / 2; i++) {
char temp = text[i];
text[i] = text[len - 1 - i];
text[len - 1 - i] = temp;
}
printf("Reversed string: %s\n", text);
return 0;
}Abrir no compiladorSaída esperada
=== C Strings: Declaration & Manipulation === Initial greeting: Hello (Length: 5) Name: Programmer (Length: 10) Concatenated: Hello, Programmer! Welcome to C. Modified greeting: Jello "apple" comes before "banana" alphabetically (cmp = -1) Reversed string: reliPmoC C enilnO
Perguntas frequentes
Por que o código e a saída continuam em inglês?
Palavras-chave, identificadores e textos verificados pelos testes são preservados para não alterar o programa. As explicações e os controles estão traduzidos.