Como comparar um vetor de caracteres e uma matriz yahoo

Em C, palavras são caracteres entre aspas duplas, do tipo char.
A função utilizada para comparar o conteúdo de uma string é a strcmp() que está definida na biblioteca string.h.
Obs: strcmp() compara o conteúdo, ou seja, se as palavras são iguais, e não se tem o mesmo tamanho.

Sintaxe:
strcmp(palavra1,palavra2);

Onde palavra1 e palavra2 são variáveis do tipo string que devem ser comparadas.

A função strcmp() pode retornar um valor nulo (zero), positivo ou negativo. Quando as palavras comparadas são iguais, a função retorna 0.

Quando as palavras comparadas são diferentes e a primeira é maior, a função retorna um valor positivo, caso contrário, a função retorna negativo, sendo que no alfabeto a “menor” letra é “a”, e a maior, “z”.

strcmp(maior,menor) == 1                                                            strcmp(“bb”,”aa”) == 1 strcmp(menor,maior) == -1                                                          strcmp(“aa”,”bb”) == -1 strcmp(grande,grande) == 0                                                        strcmp(“bb”,”bb”) == 0

strcmp(pequeno,pequeno) == 0                                                  strcmp(“aa”,”aa”) == 0

Se quiser praticar, copie o código abaixo, compile e rode. O programa imprimirá o resultado das comparações feitas.Altere as strings a serem comparadas, e observe os resultados.

#include <stdio.h> int main(void) { int a,b,c; a = strcmp(“aaa”,”bbb”); b = strcmp(“bbb”,”aaa”); c = strcmp(“ccc”,”ccc”); printf(“%d\n”, a); printf(“%d\n”, b); printf(“%d\n”, c);

}

Outro exemplo:

Verificador de senhas

/* Verificador de senhas * Programa que verifica se duas strings são iguais*/ #include int main(void) { char senha1[21],senha2[21],deposito[26]; //(1) system("clear");//(2) printf("%s%s\n", "Verificador de senhas em C.", "Programa que compara dois vetores de caracteres\n"); printf("Digite a primeira expressão (até 20 caracteres):\n"); fgets(deposito, sizeof(deposito), stdin); sscanf(deposito, "%s", &amp;senha1); printf("Digite a segunda expressão (até 20 caracteres):\n"); fgets(deposito, sizeof(deposito), stdin); sscanf(deposito, "%s", &amp;senha2); if (strcmp (senha1,senha2) == 0 ) //(3) { printf("As senhas conferem\n"); } else { printf("As senhas não conferem\n"); } } /* (1)--&gt;Inicializa as variáveis. (2)--&gt;Limpa a tela (3)--&gt;strcmp retornando 0 significa que as palavras são iguais. Atente também para o uso do operador == (de comparação) e não = (de atribuição). Este é um erro bastante comum. */

Este é o uso da função strcmp().Funções como comparar/mostrar tamanho das palavras, contar número de letras, etc serão abordadas em outros tópicos.

Então, até a próxima!

Como comparar um vetor de caracteres e uma matriz yahoo

Fundamentos da Computação Priscilla Fonseca de Abreu Braz Universidade do Estado do Rio de Janeiro Instituto de Matemática e Estatística Exercício - Classificação • Elabore um programa que leia 10 valores inteiros e classifique-os em ordem crescente. Solução • Criar uma tabela com 10 valores inteiros • Ler os 10 valores • Comparar cada valor com os demais elementos do vetor. Caso esteja fora de ordem, realizar a troca. Simulação (1) pospos valorvalor 11 66 22 55 33 44 44 33 Compara pos(1) com pos(2) Verifica se está em ordem Troca se não estiver na ordem Aux:= 6 (1) (3) pospos valorvalor 11 55 22 66 33 44 44 33 Simulação (2) pospos valorvalor 11 55 22 66 33 44 44 33 Compara pos(1) com pos(3) Verifica se esta em ordem Troca se não estiver na ordem Aux:= 5 (1) (3) pospos valorvalor 11 44 22 66 33 55 44 33 Simulação (3) posiposiççãoão valorvalor 11 44 22 66 33 55 44 33 Compara pos(1)com pos(4) Verifica se esta em ordem Troca se não estiver na ordem Aux:= 4 (1) (3) pospos valorvalor 11 33 22 66 33 55 44 44 Simulação (4) posiposiççãoão valorvalor 11 33 22 66 33 55 44 44 Compara pos(2) com pos(3) Verifica se esta em ordem Troca se não estiver na ordem Aux:= 6 (1) (3) pospos valorvalor 11 33 22 55 33 66 44 44 Simulação (5) posiposiççãoão valorvalor 11 33 22 55 33 66 44 44 Compara pos(2) com pos(4) Verifica se esta em ordem Troca se não estiver na ordem Aux:= 5 (1) (3) pospos valorvalor 11 33 22 44 33 66 44 55 Simulação (6) pospos valorvalor 11 33 22 44 33 66 44 55 Compara pos(3) com pos(4) Verifica se esta em ordem Troca se não estiver na ordem Aux:= 6 (1) (3) pospos valorvalor 11 33 22 44 33 55 44 66 Responda • Quantos valores tinha a tabela? • Na primeira passada comparou-se pos(1) com que outros valores? • Depois, quais foram as comparações? PROGRAM ORDENA; VAR VETOR:ARRAY[1..10] OF INTEGER; I,J:INTEGER; AUX:INTEGER; BEGIN WRITELN('NÚMEROS LIDOS'); FOR I:= 1 TO 10 DO BEGIN WRITE('DIGITE O ',I,#167, ' NUMERO ');READLN(VETOR[I]); END; {ROTINA DE ORDENAÇÃO} FOR I:= 1 TO 9 DO FOR J:=I+1 TO 10 DO IF VETOR[I] > VETOR[J] THEN BEGIN AUX:=VETOR[I]; VETOR[I]:=VETOR[J]; VETOR[J]:=AUX; END; {NUMEROS ORDENADOS} WRITELN(‘NUMEROS ORDENADOS '); FOR I:=1 TO 10 DO WRITELN(' ',VETOR[I]); READKEY; END. Matriz Unidimensional Nas últimas aulas vimos o conceito de vetor. Vejamos como poderíamos declarar um vetor para armazenar as quatro notas de um aluno: notas: array [1..4] of real; Este vetor poderia ser representado graficamente como: Para armazenar e percorrer os dados deste vetor necessitamos de um contador que terá a função de controlar a posição em que cada valor será armazenado neste vetor. Matriz Multidimensional – Estrutura de dados com mais de um índice – Sintaxe: – matriz: array[1..tamanho,1..tamanho, ...] of tipo; – Exemplo: • mat: array[1..10,1..10] of integer; • mat2: array[1..2,1..5,1..5] of real; Matriz Multidimensional – Exemplo: – E como ficaria sua declaração em Pascal: – notas: array[1..5,1..4] of real; Matriz Multidimensional Para controlar a posição das matrizes (de duas dimensões) precisamos de mais um contador, pois além da linha a ser controlada é preciso verificar também a coluna. Dessa forma, em uma matriz simples utilizaremos dois contadores. Exemplo: mat: array[1..3,1..3] of integer; lin,col: integer; for lin:=1 to 3 do for col:=1 to 3 do mat[lin,col]:= lin+col; Matriz Multidimensional program Teste_mat; uses crt; var mat:array [1..2,1..2]of integer; lin,col:integer; begin for lin:=1 to 2 do for col:=1 to 2 do begin writeln('Informe o elemento da linha ',lin,' e coluna ',col); readln(mat[lin,col]); end; writeln; for lin:=1 to 2 do begin for col:=1 to 2 do write(mat[lin,col],' '); writeln; end; readkey; end. Matriz Multidimensional Exemplo: Matriz Multidimensional • Exemplo: Criar uma matriz identidade matriz:array[1..3,1..3] of integer; for lin:=1 to 3 do for col:=1 to 3 do begin if (lin = col) then matriz[lin,col] := 1 else matriz[lin,col]:=0; end; Matriz Multidimensional •Execução: matriz:array[1..3,1..3] of integer; for lin:=1 to 3 do for col:=1 to 3 do begin if (lin = col) then matriz[lin,col] := 1 else matriz[lin,col]:=0; end; Lin Col Matriz[lin,col] 1 1 Matriz Multidimensional •Execução: matriz:array[1..3,1..3] of integer; for lin:=1 to 3 do for col:=1 to 3 do begin if (lin = col) then matriz[lin,col] := 1 else matriz[lin,col]:=0; end; Lin Col Matriz[lin,col] 1 1 1 1 2 Matriz Multidimensional •Execução: matriz:array[1..3,1..3] of integer; for lin:=1 to 3 do for col:=1 to 3 do begin if (lin = col) then matriz[lin,col] := 1 else matriz[lin,col]:=0; end; Lin Col Matriz[lin,col] 1 1 1 1 2 0 1 3 Matriz Multidimensional •Execução: matriz:array[1..3,1..3] of integer; for lin:=1 to 3 do for col:=1 to 3 do begin if (lin = col) then matriz[lin,col] := 1 else matriz[lin,col]:=0; end; Lin Col Matriz[lin,col] 1 1 1 1 2 0 1 3 0 2 1 Matriz Multidimensional •Execução: matriz:array[1..3,1..3] of integer; for lin:=1 to 3 do for col:=1 to 3 do begin if (lin = col) then matriz[lin,col] := 1 else matriz[lin,col]:=0; end; Lin Col Matriz[lin,col] 1 1 1 1 2 0 1 3 0 2 1 0 2 2 Matriz Multidimensional •Execução: matriz:array[1..3,1..3] of integer; for lin:=1 to 3 do for col:=1 to 3 do begin if (lin = col) then matriz[lin,col] := 1 else matriz[lin,col]:=0; end; Lin Col Matriz[lin,col] 1 1 1 1 2 0 1 3 0 2 1 0 2 2 1 2 3 Matriz Multidimensional •Execução: matriz:array[1..3,1..3] of integer; for lin:=1 to 3 do for col:=1 to 3 do begin if (lin = col) then matriz[lin,col] := 1 else matriz[lin,col]:=0; end; Lin Col Matriz[lin,col] 1 1 1 1 2 0 1 3 0 2 1 0 2 2 1 2 3 0 3 1 Matriz Multidimensional •Execução: matriz:array[1..3,1..3] of integer; for lin:=1 to 3 do for col:=1 to 3 do begin if (lin = col) then matriz[lin,col] := 1 else matriz[lin,col]:=0; end; Lin Col Matriz[lin,col] 1 1 1 1 2 0 1 3 0 2 1 0 2 2 1 2 3 0 3 1 0 3 2 Matriz Multidimensional •Execução: matriz:array[1..3,1..3] of integer; for lin:=1 to 3 do for col:=1 to 3 do begin if (lin = col) then matriz[lin,col] := 1 else matriz[lin,col]:=0; end; Lin Col Matriz[lin,col] 1 1 1 1 2 0 1 3 0 2 1 0 2 2 1 2 3 0 3 1 0 3 2 0 3 3 Matriz Multidimensional •Execução: matriz:array[1..3,1..3] of integer; for lin:=1 to 3 do for col:=1 to 3 do begin if (lin = col) then matriz[lin,col] := 1 else matriz[lin,col]:=0; end; Lin Col Matriz[lin,col] 1 1 1 1 2 0 1 3 0 2 1 0 2 2 1 2 3 0 3 1 0 3 2 0 3 3 1 Utilização de Constantes • Vantagem na utilização de constantes: Se houver necessidade de alterar a dimensão do vetor, basta alterar o valor da constante DIM. Utilização de Constantes const DIM = 100; var Lin,col:integer; Tab:array [1..DIM,1..DIM] OF INTEGER; for lin:=1 to DIM do for col:=1 to DIM do begin writeln(‘Linha ’,lin,’ coluna ‘,col); readln(tab[lin,col]); end; for lin:=1 to DIM do for col:=1 to DIM do writeln(tab[lin,col]); end; Exercícios Qual o conteúdo das matrizes M e N após a execução do algoritmo abaixo? Exercícios Qual o conteúdo das matrizes M e N após a execução do algoritmo abaixo? 1 2 1 2 1 2 1 2 1 2 1 2 A Z Z A M N Exercícios 1) Escreva um programa que leia caracteres em uma matriz 4x4 e após a leitura imprima os dados lidos. 2) Faça um programa que leia valores inteiros em duas matrizes 3x3 e imprima a matriz soma das duas. 3)Escreva um programa que leia os valores inteiros de uma matriz e após a leitura multiplique cada elemento dessa matriz por 2. Ao final a matriz resultante deve ser impressa. Exercícios PROGRAM MAT01; USES CRT; VAR MAT:ARRAY[1..4,1..4] OF INTEGER; LIN, COL:INTEGER; BEGIN FOR LIN:=1 TO 4 DO BEGIN FOR COL:=1 TO 4 DO BEGIN WRITELN('INFORME O VALOR PARA A POSIÇÃO [',LIN,',',COL,']');

Como comparar um vetor de caracteres e uma matriz yahoo
Como comparar um vetor de caracteres e uma matriz yahoo
Como comparar um vetor de caracteres e uma matriz yahoo