Faça uma rotina que receba como parâmetro um vetor de caracteres e seu tamanho. A função deverá de ler uma string do teclado, caractere por caractere usando a função getchar() até que o usuário digite enter ou o tamanho máximo do vetor seja alcançado.

Passo 1

A função deve receber um vetor de caracteres e seu tamanho máximo, e ler do teclado caractere a caractere até encontrar ‘\n’ (enter) ou atingir o limite (respeitando espaço para o ‘\0’).

Passo 2

Usamos um laço for que itera de 0 até maxSize−1, garantindo espaço para o terminador nulo. Dentro do laço, chamamos getchar() e armazenamos o valor retornado em uma variável temporária. Se o caractere lido for ‘\n’ ou EOF, interrompemos o laço. Caso contrário, atribuímos esse caractere à posição atual do vetor. Após sair do laço, colocamos ‘\0’ na posição atual para terminar a string corretamente.

Resposta

#include <stdio.h>
void readString(char str[], int maxSize) {
int c;
int i;
for (i = 0; i < maxSize - 1; i++) {
    c = getchar();
    if (c == '\n' || c == EOF) {
        break;
    }
    str[i] = (char)c;
}
str[i] = '\0';
}

Exercícios relacionados