Concatenar Strings Usando Ponteiros

CBeginner
Pratique Agora

Introdução

Em programação C, podemos concatenar duas strings usando ponteiros, apontando o endereço base das duas strings para uma variável ponteiro char e incrementando o ponteiro até o final da primeira string, e então copiando os caracteres da segunda string para o final da primeira.

Neste laboratório, você aprenderá como concatenar duas strings usando ponteiros na linguagem de programação C.

Criar um novo arquivo

Primeiramente, abra seu editor de texto e crie um novo arquivo chamado main.c no diretório ~/project/.

Incluir Arquivos de Cabeçalho

Nesta etapa, inclua os arquivos de cabeçalho necessários no programa, que são stdio.h e stdlib.h.

#include <stdio.h>
#include <stdlib.h>

Definir a função main()

A função main() é usada para definir o corpo do programa em C.

int main(){
  // TODO: Write code here
  return 0;
}

Declarar Variáveis

Nesta etapa, declare duas arrays de caracteres aa e bb com um tamanho de 100 bytes cada.

char aa[100], bb[100];

Entrada de Strings

Nesta etapa, o usuário fornecerá os valores para as duas strings aa e bb e os armazenará usando a função gets().

printf("Enter the first string: ");
gets(aa);

printf("Enter the second string to be concatenated: ");
gets(bb);

Concatenar Strings

Nesta etapa, definiremos dois ponteiros de caracteres a e b e começaremos a concatenar a segunda string bb com a primeira aa.

char *a = aa;
char *b = bb;

while(*a){
  a++;
}

while(*b){
  *a = *b;
  b++;
  a++;
}
*a = '\0';
  • *a está apontando para a próxima localização de memória, desde que não aponte para o final da primeira string aa. Isso é feito usando a expressão while(*a).
  • Aqui, a é incrementado para a próxima localização de memória até atingir o final da primeira string aa.
  • *b está apontando para a próxima localização de memória até que não aponte para o final da segunda string bb. Isso é feito usando a expressão while(*b).
  • Para cada localização de memória, a recebe o valor apontado por b e, em seguida, tanto a quanto b são incrementados. Isso é feito usando a expressão *a = *b; b++; a++;
  • O '\0' representa o final da string.

Exibir String Concatenada

Nesta etapa, exiba a string concatenada após a conclusão do processo de concatenação.

printf("\nThe string after concatenation is: %s ", aa);

Compilar e Executar

Nesta etapa, compile e execute o arquivo main.c usando os seguintes comandos:

gcc main.c -o output
./output

Código Completo

Abaixo está o código completo para o programa Concatenar Strings Usando Ponteiros:

#include <stdio.h>
#include <stdlib.h>

int main(){
  char aa[100], bb[100];

  printf("Enter the first string: ");
  gets(aa);

  printf("Enter the second string to be concatenated: ");
  gets(bb);

  char *a = aa;
  char *b = bb;

  while(*a){
    a++;
  }

  while(*b){
    *a = *b;
    b++;
    a++;
  }
  *a = '\0';

  printf("\nThe string after concatenation is: %s ", aa);

  return 0;
}

Resumo

Neste laboratório, você aprendeu como concatenar duas strings usando ponteiros na linguagem de programação C. Fizemos isso apontando o endereço base das duas strings para uma variável ponteiro char e incrementando o ponteiro até o final da primeira string e, em seguida, copiando os caracteres da segunda string para o final da primeira. Lembre-se de compilar e executar o código para verificar sua funcionalidade.