Criar Iteradores de Array de Strings em C

CBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como criar e iterar sobre um array de strings em programação C. Você declarará um array de strings, iterará sobre ele usando um loop while, lidará com strings terminadas em nulo e imprimirá cada string no array. Essas habilidades são essenciais para trabalhar com dados de texto e construir aplicações C mais complexas.

O laboratório cobre as seguintes etapas: declarar um array de strings, iterar sobre o array com um loop while, lidar com strings terminadas em nulo, imprimir cada string no array e compilar e executar o programa C. Ao completar este laboratório, você obterá uma sólida compreensão de como trabalhar com arrays de strings em C, que é um conceito fundamental na programação C.

Declarar um Array de Strings

Nesta etapa, você aprenderá como declarar um array de strings em programação C. Arrays de strings são estruturas de dados poderosas que permitem armazenar múltiplas strings em uma única variável.

  1. Abra o WebIDE e crie um novo arquivo chamado string-array.c no diretório ~/project:
cd ~/project
touch string-array.c
  1. Abra o arquivo no WebIDE e adicione o seguinte código:
#include <stdio.h>

void main() {
    const char* fruits[] = {
        "Apple",
        "Banana",
        "Cherry",
        "Date",
        NULL
    };
}

Este código demonstra como declarar um array de strings em C. Vamos detalhar os componentes-chave:

  • const char* indica um array de ponteiros de strings constantes
  • fruits[] é o nome do array
  • O array contém quatro nomes de frutas como strings
  • NULL é usado para marcar o fim do array, o que será útil em iterações futuras

Observe que este array é terminado em nulo (null-terminated), o que significa que o último elemento é NULL. Esta é uma prática comum em C para arrays de strings, pois ajuda a determinar o fim do array durante a iteração.

Iterar Através do Array com um Loop While

Nesta etapa, você aprenderá como iterar através de um array de strings usando um loop while em programação C. Baseando-se na etapa anterior, modificaremos o arquivo string-array.c para imprimir o conteúdo do array fruits.

  1. Abra o arquivo string-array.c no WebIDE:
  2. Atualize o código para incluir um loop while para iterar através do array:
#include <stdio.h>

void main() {
    const char* fruits[] = {
        "Apple",
        "Banana",
        "Cherry",
        "Date",
        NULL
    };

    int i = 0;
    while (fruits[i]) {
        printf("Fruit: %s\n", fruits[i]);
        ++i;
    }
}

Vamos detalhar a lógica da iteração:

  • int i = 0 inicializa um contador de índice
  • while (fruits[i]) continua o loop até atingir o terminador NULL
  • printf("Fruit: %s\n", fruits[i]) imprime cada nome de fruta
  • ++i incrementa o índice para mover para o próximo elemento
  1. Compile o programa:
gcc string-array.c -o string-array
  1. Execute o programa compilado:
./string-array

Exemplo de saída:

Fruit: Apple
Fruit: Banana
Fruit: Cherry
Fruit: Date

O loop while permite que você itere através do array verificando o terminador NULL, que sinaliza o fim do array. Este método é uma maneira comum e eficiente de percorrer arrays de strings em C.

Manipular Strings Terminadas em Null

Nesta etapa, você aprenderá sobre strings terminadas em nulo e como elas são usadas para marcar o fim de arrays de strings em programação C. Entender a terminação nula é crucial para trabalhar com arrays de strings.

  1. Abra o arquivo string-array.c no WebIDE:
  2. Modifique o código para demonstrar a terminação nula e o comprimento da string:
#include <stdio.h>
#include <string.h>

void main() {
    const char* fruits[] = {
        "Apple",
        "Banana",
        "Cherry",
        "Date",
        NULL
    };

    int i = 0;
    while (fruits[i]) {
        printf("Fruit: %s\n", fruits[i]);
        printf("Length of %s: %lu\n", fruits[i], strlen(fruits[i]));
        ++i;
    }

    printf("Total number of fruits: %d\n", i);
}

Modificações chave:

  • Adicionado #include <string.h> para usar a função strlen()
  • Usado strlen() para demonstrar o comprimento da string
  • Adicionado uma contagem do total de frutas usando o índice do loop
  1. Compile o programa:
gcc string-array.c -o string-array
  1. Execute o programa compilado:
./string-array

Exemplo de saída:

Fruit: Apple
Length of Apple: 5
Fruit: Banana
Length of Banana: 6
Fruit: Cherry
Length of Cherry: 6
Fruit: Date
Length of Date: 4
Total number of fruits: 4

Entendendo a terminação nula:

  • O NULL no final do array atua como um valor sentinela
  • Ajuda a determinar o fim do array durante a iteração
  • strlen() funciona contando caracteres até atingir o terminador nulo (\0)
  • O loop para quando encontra o ponteiro NULL

Imprimir Cada String no Array

Nesta etapa, você explorará diferentes maneiras de imprimir strings de um array, incluindo opções de formatação e técnicas avançadas de impressão.

  1. Abra o arquivo string-array.c no WebIDE:
  2. Atualize o código para demonstrar múltiplas técnicas de impressão:
#include <stdio.h>
#include <string.h>

void main() {
    const char* fruits[] = {
        "Apple",
        "Banana",
        "Cherry",
        "Date",
        NULL
    };

    // Method 1: Basic printing with index
    printf("Method 1: Basic Printing\n");
    int i = 0;
    while (fruits[i]) {
        printf("%d: %s\n", i + 1, fruits[i]);
        ++i;
    }

    // Method 2: Formatted printing with alignment
    printf("\nMethod 2: Formatted Printing\n");
    i = 0;
    while (fruits[i]) {
        printf("| %-10s | Length: %2lu |\n", fruits[i], strlen(fruits[i]));
        ++i;
    }

    // Method 3: Printing with additional formatting
    printf("\nMethod 3: Advanced Printing\n");
    i = 0;
    while (fruits[i]) {
        printf("Fruit #%d: [%s] has %lu characters\n",
               i + 1, fruits[i], strlen(fruits[i]));
        ++i;
    }
}
  1. Compile o programa:
gcc string-array.c -o string-array
  1. Execute o programa compilado:
./string-array

Exemplo de saída:

Method 1: Basic Printing
1: Apple
2: Banana
3: Cherry
4: Date

Method 2: Formatted Printing
| Apple      | Length:  5 |
| Banana     | Length:  6 |
| Cherry     | Length:  6 |
| Date       | Length:  4 |

Method 3: Advanced Printing
Fruit #1: [Apple] has 5 characters
Fruit #2: [Banana] has 6 characters
Fruit #3: [Cherry] has 6 characters
Fruit #4: [Date] has 4 characters

Técnicas de impressão demonstradas:

  • Indexação básica com printf()
  • Impressão formatada com largura e alinhamento
  • Formatação avançada com informações adicionais
  • Usando strlen() para obter o comprimento da string

Resumo

Neste laboratório, você aprendeu como declarar um array de strings em programação C, o que permite armazenar múltiplas strings em uma única variável. Você também aprendeu como iterar através do array usando um loop while, lidando com strings terminadas em nulo e imprimindo cada string no array. Essas técnicas são fundamentais para trabalhar com estruturas de dados de strings em C e fornecem uma base sólida para tarefas de manipulação de strings mais avançadas.