O documento descreve algoritmos e códigos em C para comparar duas strings. É apresentado um algoritmo e fluxograma que comparam as strings e indicam qual é maior ou se são iguais. Também é mostrado como implementar a comparação em C fazendo uso da função strcmp.
1. 9/12/2014 Comparar 2 Strings
Programação I
Ana Isabel Rodrigues
LICENCIATURA INFORMATICA – 1º ANO - Nº 558
2. Conteúdo
....................................................................................................................................................... 0
Algoritmo: Comparar duas strings ................................................................................................ 2
Fluxograma: Comparar duas strings.............................................................................................. 3
// 1ª Opção ............................................................................................................................... 3
// 2ª Opção ............................................................................................................................... 4
Em C............................................................................................................................................... 5
// 1ª Opção ............................................................................................................................... 5
// 2ª Opção ............................................................................................................................... 7
Material Apoio:............................................................................................................................. 9
19 de dezembro de 2014
3. Algoritmo: Comparar duas strings
[Inicialização de Variáveis]
strcomp <-0
maxstr <- 80
char str1
char str2
[Leitura de Variáveis]
str1 <- (“Digite a 1ª String”)
str2 <- (“Digite a 2ª String”)
[Calculo do Valor]
strcomp=strcmp(str1,str2,maxstr)
[Resultado]
// 1ª Opção
Se strcomp>0 então
Escreve (“A 1ª String é maior”)
Senão se strcomp<0 então
Escreve(“A 2ª String é maior”)
Senão
Escreve (“As duas strings são iguais”)
// 2ª Opção
Se (strcomp(str1,str2)==0) então
Escreve(“As suas strings são iguais”)
Senão
Escreve(“As duas strings são diferentes”)
29 de dezembro de 2014
4. Fluxograma: Comparar duas strings
// 1ª Opção
Inicio
strcomp=0
maxstr=80
char str1
char str2
str1
Digite a 1ª String
str2
Digite a 2ª String
strcomp=strcmp(str1,str2,maxstr)
strcomp>0
F V
A 1ª String é maior
strcomp<0
F V
As 2 strings são
iguais
A 2ª String é maior
Fim
39 de dezembro de 2014
5. Fluxograma: Comparar duas strings
// 2ª Opção
Inicio
strcomp=0
maxstr=80
char str1
char str2
str1
Digite a 1ª String
str2
Digite a 2ª String
strcomp=strcmp(str1,str2,maxstr)
strcomp=0
F V
A 1ª String é maiorAs 2 Strings são
diferentes
Fim
49 de dezembro de 2014
10. Material Apoio:
Programação em C++ - Conceitos básicos e Algoritmos (FCA)
http://pt.wikibooks.org/wiki/Programar_em_C/Strings
strcmp
Se você tentar criar duas strings com o mesmo conteúdo e compará-las como faria como
números, verá que elas "não são iguais". Isso ocorre porque, na verdade, o que está
sendo comparado são os endereços de memória onde estão guardadas as strings. Para
comparar o conteúdo de duas strings, você deve usar a função strcmp (ou suas
variantes):
int strcmp (char *s1, char *s2);
O valor de retorno é:
• menor que zero se s1 for menor que s2;
• igual a zero se s1 e s2 são iguais;
• maior que zero se s1 for maior que s2.
Costuma parecer estranho dizer que uma string é menor ou maior que outra; na verdade
essa comparação é entre a primeira letra que difere nas duas strings. Assim, se
tivermos s1 = "abc" e s2 = "abd" , diremos que s2 é maior que s1, pois na primeira
posição em que as duas strings diferem, a letra em s2 é "maior".
É importante notar que a comparação feita por strcmp distingue maiúsculas de
minúsculas. Isto é, as strings "ABC" e "abc" não são iguais para essa função.
As variantes mais usadas de strcmp são:
• strncmp - compara apenas os n primeiros caracteres das duas strings, sendo n um
terceiro argumento.
• stricmp - compara duas strings sem distinção entre maiúsculas e minúsculas. A
sintaxe é igual à de strcmp. Essa função não faz parte da biblioteca padrão, mas é
comumente encontrada como extensão particular de várias delas.
http://codigoseficientes.blogspot.pt/2012/10/acentuacao-na-linguagem-c.html
99 de dezembro de 2014