Pular para conteúdo

Aula 08 – Strings em C 🔡

Diferente de linguagens como Python ou Java, o C não possui um tipo "String" nativo. Em C, um texto é simplesmente um Vetor de Caracteres (char).


🧵 1. O que é uma String em C?

É um array de char que termina obrigatoriamente com o caractere especial \0 (null terminator). Esse caractere avisa ao computador: "O texto acaba aqui!".

Declaração e Inicialização

#include <stdio.h>

int main() {
    // Declaração de string com 20 posições
    char nome[20] = "Ricardo"; 

    // O C adiciona o '\0' automaticamente no final de strings entre aspas duplas
    printf("Olá, %s!\n", nome); // %s é o formatador de String

    return 0;
}

📥 2. Lendo Strings com Espaços

O scanf("%s", ...) para de ler assim que encontra um espaço. Para ler um nome completo ou uma frase, usamos o comando fgets.

$ gcc strings.c -o strings
$ ./strings
Digite seu nome completo: Ricardo Pires
Bem-vindo, Ricardo Pires!

Exemplo de Código:

char nomeCompleto[50];
printf("Digite seu nome: ");
fgets(nomeCompleto, 50, stdin); // Nome, tamanho, entrada padrão (teclado)


📚 3. A Biblioteca <string.h>

Para manipular textos, usamos funções prontas desta biblioteca:

  • strlen(): Retorna o tamanho da string (quantidade de letras).
  • strcpy(): Copia uma string para outra.
  • strcat(): Junta (concatena) duas strings.
  • strcmp(): Compara se duas strings são iguais (retorna 0 se forem iguais).

💻 Exemplo Prático: Comparação de Senha

#include <stdio.h>
#include <string.h>

int main() {
    char senha[20] = "segredo123";
    char tentativa[20];

    printf("Digite a senha: ");
    scanf("%s", tentativa);

    if (strcmp(senha, tentativa) == 0) {
        printf("Acesso Garantido!\n");
    } else {
        printf("Senha Incorreta.\n");
    }

    return 0;
}

🚀 Mini-Projeto da Aula: "Criptografia Simples"

Objetivo: Criar um programa que receba uma palavra e a "criptografe" somando 1 ao valor ASCII de cada caractere (ex: 'A' vira 'B', 'B' vira 'C').


📝 Exercícios de Fixação

  1. Crie um programa que peça o nome do usuário e imprima quantas letras esse nome tem.
  2. Escreva um programa que receba duas palavras e as junte em uma única variável usando strcat.
  3. Desafio: Como você faria para imprimir uma string de trás para frente usando um laço for e o strlen?

Próxima Aula: Funções