Laboratório Prático: Manipulação básica de strings em C
Published:
Parte 1: Tutorial Prático Passo a Passo
Vamos criar um programa simples para cadastrar o nome de um paciente e realizar algumas análises básicas sobre esse nome.
O programa deverá:
- Ler o nome completo do paciente;
- Exibir o nome digitado;
- Contar quantos caracteres o nome possui;
- Mostrar a primeira letra do nome;
- Percorrer e exibir cada caractere em uma linha.
Passo 1: Criando a estrutura básica do programa
#include <stdio.h>
int main() {
return 0;
}
Todo programa em C começa pela função main.
Passo 2: Declarando uma string
Em C, uma string é um vetor de caracteres.
char nome[50];
Isso significa que a variável nome pode armazenar até 49 caracteres, pois uma posição é reservada para o caractere final \0.
Programa até aqui:
#include <stdio.h>
int main() {
char nome[50];
return 0;
}
Passo 3: Lendo uma string com fgets
Para ler textos com espaços, usamos fgets.
fgets(nome, 50, stdin);
Código:
#include <stdio.h>
int main() {
char nome[50];
printf("Digite o nome do paciente: ");
fgets(nome, 50, stdin);
return 0;
}
Passo 4: Exibindo a string
Para imprimir uma string, usamos %s.
printf("Paciente: %s", nome);
Código:
#include <stdio.h>
int main() {
char nome[50];
printf("Digite o nome do paciente: ");
fgets(nome, 50, stdin);
printf("Paciente: %s", nome);
return 0;
}
Passo 5: Usando a biblioteca string.h
Para usar funções de strings, precisamos incluir:
#include <string.h>
A função strlen retorna a quantidade de caracteres da string.
int tamanho = strlen(nome);
Código:
#include <stdio.h>
#include <string.h>
int main() {
char nome[50];
int tamanho;
printf("Digite o nome do paciente: ");
fgets(nome, 50, stdin);
tamanho = strlen(nome);
printf("Paciente: %s", nome);
printf("Quantidade de caracteres: %d\n", tamanho);
return 0;
}
Passo 6: Cuidado com o \n do fgets
Quando usamos fgets, a tecla Enter também pode ser armazenada como \n.
Por isso, o tamanho pode parecer maior do que o esperado.
Podemos remover esse \n assim:
nome[strcspn(nome, "\n")] = '\0';
Código ajustado:
#include <stdio.h>
#include <string.h>
int main() {
char nome[50];
int tamanho;
printf("Digite o nome do paciente: ");
fgets(nome, 50, stdin);
nome[strcspn(nome, "\n")] = '\0';
tamanho = strlen(nome);
printf("Paciente: %s\n", nome);
printf("Quantidade de caracteres: %d\n", tamanho);
return 0;
}
Passo 7: Mostrando a primeira letra
Como uma string é um vetor, podemos acessar posições específicas.
printf("Primeira letra: %c\n", nome[0]);
Código:
#include <stdio.h>
#include <string.h>
int main() {
char nome[50];
int tamanho;
printf("Digite o nome do paciente: ");
fgets(nome, 50, stdin);
nome[strcspn(nome, "\n")] = '\0';
tamanho = strlen(nome);
printf("Paciente: %s\n", nome);
printf("Quantidade de caracteres: %d\n", tamanho);
printf("Primeira letra: %c\n", nome[0]);
return 0;
}
Passo 8: Percorrendo a string
Podemos usar um for para visitar cada caractere.
for(int i = 0; nome[i] != '\0'; i++) {
printf("%c\n", nome[i]);
}
Código final do tutorial:
#include <stdio.h>
#include <string.h>
int main() {
char nome[50];
int tamanho;
printf("Digite o nome do paciente: ");
fgets(nome, 50, stdin);
nome[strcspn(nome, "\n")] = '\0';
tamanho = strlen(nome);
printf("\n Dados do paciente \n");
printf("Paciente: %s\n", nome);
printf("Quantidade de caracteres: %d\n", tamanho);
printf("Primeira letra: %c\n", nome[0]);
printf("\nCaracteres do nome:\n");
for(int i = 0; nome[i] != '\0'; i++) {
printf("%c\n", nome[i]);
}
return 0;
}
Parte 2: Exercícios Práticos
Exercício 1: Nome do equipamento
Crie um programa que leia o nome de um equipamento e exiba:
- o nome digitado;
- a quantidade de caracteres;
- a primeira letra;
- a última letra.
Exemplo de equipamentos:
- Tomógrafo
- Ressonância
- Mamógrafo
- Ultrassom
Dicas
- Use
char equipamento[50]; - Use
fgetspara ler o texto. - Remova o
\ncomstrcspn. - Use
strlenpara descobrir o tamanho. - A última letra está na posição
tamanho - 1.
Exercício 2: Comparação de códigos de pacientes
Em um sistema hospitalar, cada paciente possui um código de identificação.
Crie um programa que leia dois códigos de pacientes e informe se eles são iguais ou diferentes.
Dicas
- Use duas strings, por exemplo:
char codigo1[20];
char codigo2[20];
- Use
strcmppara comparar. - Se
strcmp(codigo1, codigo2) == 0, os códigos são iguais.
Exercício 3: Contagem de espaços em um nome completo
Crie um programa que leia o nome completo de um paciente e conte quantos espaços existem no texto.
Exemplo:
Maria Clara Santos
Quantidade de espaços:
2
Dicas
- Percorra a string com
for. - Verifique se cada caractere é igual a
' '. - Use uma variável contadora.
Exercício 4: Contagem de vogais em uma descrição de exame
Crie um programa que leia uma breve descrição de exame e conte quantas vogais aparecem no texto.
Exemplo:
Exame de tomografia
Dicas
- Percorra a string caractere por caractere.
- Compare cada caractere com:
'a', 'e', 'i', 'o', 'u'
- Considere também letras maiúsculas:
'A', 'E', 'I', 'O', 'U'
Exercício 5: Montagem de identificação completa
Crie um programa que leia:
- nome do paciente;
- sobrenome do paciente;
- código do exame.
Depois, o programa deve montar uma identificação completa no formato:
Nome Sobrenome - Código do Exame
Exemplo:
Ana Silva - RX102
Dicas
- Use três strings para leitura.
- Use uma quarta string para guardar o resultado final.
- Use
strcpypara copiar o primeiro texto. - Use
strcatpara concatenar os demais textos. - Lembre-se de reservar espaço suficiente para a string final.
Exemplo:
char identificacao[100];
