Como comparar inicio e fim de um string em c

Faça um programa para comparar se duas strings são iguais.

Comentários: este é mais um exercício para exercitarmos laços de repetição. Esta série referem-se as strings pois, sabemos que em C as strings se assemelham a um vetor (char string[]).

Linguagem C

Na linguagem C, como dito, sabemos que as strings em questão são 2 vetores e que o caminho mais provável seja comparar os valores de ambos os vetores um a um. Utilize o código abaixo para encontrar a sua solução.

#include <stdio.h> #include <assert.h> // // Função que compara se duas string são iguais // int compararStrings(char str1[], char str2[]) { // Aqui entra a lógica do programa. } // // Testes // int main() { char ola[] = "ola"; char ola2[] = "ola"; assert(1 == compararStrings(ola, ola2)); return 0; }

Solução na linguagem C

// // Função que compara se duas string são iguais // int compararStrings(char str1[], char str2[]) { int i = 0; do { if(str1[i] != str2[i]) { return 2; } i++; } while(str1[i] != 0); return 1; }

Desafio na linguagem C

A função abaixo também funciona, porém a implementação dela é bem diferente.

O desafio é entender o que está acontecendo.

int compararStrings(char str1[], char str2[]) { int i = 0; for (i = 0; str1[i] == str2[i]; i++) { if (str1[i] == 0) { return 1; } } return 2; }

Linguagem Python

Em Python, no terminal, vemos que nosso objetivo (compara duas strings) é facilmente alcançado.

>>> "palavra" == "palavra" True

Como seria a solução se tivéssemos que construir um laço de repetição?

Vamos praticar…

# -*- coding: utf-8 -*- # # Seu código # def compararString(a, b): pass # # Seu teste # cor1 = "laranja" cor2 = "amarelo" assert not compararString(cor1, cor2) assert compararString(cor1, cor1)

Solução na linguagem Python

# -*- coding: utf-8 -*- # # Seu código # def compararString(a, b): i = 0 while i < len(a): if a[i] != b[i]: return False break i += 1 return True # # Seu teste # cor1 = "laranja" cor2 = "amarelo" assert not compararString(cor1, cor2) assert compararString(cor1, cor1)

Linguagem JavaScript

Em JS temos a mesma facilidade….

> "laranja" == "laranja" true > "laranja" != "amarelo" true >

O laço de repetição é trivial.

Por: Eduardo Casavella

A biblioteca string.h da linguagem C, contém uma série de funções para manipular strings.

Neste artigo veremos como:

  • Copiar strings em C usando strcpy e strncpy;
  • Concatenar strings em linguagem C usando strcat e strncat;
  • Descobrir o tamanho de uma string em C usando strlen();
  • Comparar strings em C usando strcmp();

Construiremos exemplos de programas em C para exemplificar as funções mais utilizadas.

Nas funções a seguir, utilizamos o seguinte padrão para descrever
a sintaxe:

string_destino: é a string que recebe a cópia

string_origem: é a string que contém a cadeia de caracteres que será copiada.

strcpy

Sintaxe:

strcpy(string_destino, string_origem);

Realiza a cópia do conteúdo de uma variável a outra.

Obs:Ambas devem ser strings.

#include <stdio.h> #include <string.h> //necessário para strcpy #include <conio.h> int main (void) { char nome[15]; strcpy(nome, "Fulano de Tal"); //strcpy(string_destino, string_origem); //note que a string de destino é nome //a string de origem é "Fulano de Tal" printf("Nome = %s", nome); getch(); return 0; }

Tela de execução

Como comparar inicio e fim de um string em c

Execução do exemplo strcpy

strncpy

Sintaxe:

strncpy(string_destino, string_origem, tamanho);

Realiza a cópia do conteúdo de uma variável a outra, porém,
deve ser especificado o tamanho a ser copiado.

Obs:Tanto a variável de destino como a de origem devem ser strings.

#include <stdio.h> #include <string.h>//necessário para strncpy #include <conio.h> int main (void) { char str1[8] = "Curso C"; char str2[5]; strncpy(str2, str1, 5); str2[5] = '\0'; printf("str2 = %s\n", str2); getch(); return 0; }

Tela de execução

Como comparar inicio e fim de um string em c

Execução do exemplo strncpy

strcat

Sintaxe

strcat(string_destino, string_origem);

Realiza a concatenação do conteúdo de uma variável a outra.
Ambas devem ser strings.

//Exemplo strcat #include <stdio.h> #include <string.h>//necessário para strcat #include <conio.h> int main (void) { char str[10] = "Curso"; strcat(str, " de C"); //Concatena a string " de C" com o conteúdo da string str printf("str = %s\n", str); //Será exibido curso de C getch(); return 0; }

Tela de execução

Como comparar inicio e fim de um string em c

Execução do exemplo strcat

strncat

Sintaxe:

strncat(string_destino, string_origem, tamanho);

Realiza a concatenação do conteúdo de uma variável a outra, porém, deve ser especificado o tamanho a ser concatenado.

Ambas devem ser strings.