Pular para conteúdo

Strings em C 🔡

Aula 08 - Manipulando Textos


O que vamos aprender hoje? 📅

  • O que é uma String?
  • O Terminador \0
  • Declaração e Inicialização
  • Lendo textos com fgets
  • A biblioteca string.h

String? Em C não existe! 😱

Diferente de Python ou Java, C não tem um tipo string.

Em C, texto é um Vetor de Caracteres.

char nome[10] = "Ana";

O Terminador Null (\0) 🛑

Toda string em C DEVE terminar com o caractere especial \0.

A n a \0 ? ?
0 1 2 3 4 5

Ele marca o fim do texto na memória.


Aspas Simples vs Duplas ✌️

  • 'A': Um único caractere (char).
  • "A": Uma string (Vetor com 'A' e '\0').

Lendo Strings: O problema do scanf 📥

scanf("%s", ...) para no primeiro espaço.

Exemplo: "Ricardo Pires" vira apenas "Ricardo".


A Solução: fgets() ✅

Lê a linha inteira, incluindo espaços.

char buffer[50];
fgets(buffer, 50, stdin);

buffer: onde guardar. 50: limite de letras. stdin: origem (teclado).


Biblioteca 📚

As ferramentas essenciais:

  • strlen(s): Tamanho do texto.
  • strcpy(dest, orig): Copia texto.
  • strcat(s1, s2): Junta textos.
  • strcmp(s1, s2): Compara textos.

Comparando Strings ⚖️

NUNCA use == para comparar strings.

// ERRADO ❌
if (s1 == s2) 

// CERTO ✅
if (strcmp(s1, s2) == 0)

O == compararia o endereço de memória, não o texto!


Exemplo: Criptografia 🔐

Strings são apenas números (Tabela ASCII).

char s[] = "ABC";
s[0] = s[0] + 1; // 'A' vira 'B'

Percorrendo uma String 🔁

for (int i = 0; s[i] != '\0'; i++) {
    printf("%c-", s[i]);
}
// Saída: R-i-c-a-r-d-o-

Desafio da Aula 🚀

Crie o "Inversor de Nomes": Receba um nome e imprima ele de trás para frente.


Próxima Aula 🔜

Aula 09 - Funções

Chega de escrever tudo no main! Vamos aprender a criar nossos próprios comandos. 📦


Dúvidas? 🤔

Pratique nos exercícios!


FIM DA AULA 08 ✨

Domine as strings, domine a CLI!