Comparar o tamanho de strings é uma função comum na programação da linguagem C, pois ela permite verificar qual delas contém mais caracteres. Tal recurso é muito útil para ordenar dados. Comparar strings requer uma função especial; não use != ou ==.
Ola galera, estou aprendendo sobre strings e preciso fazer um algoritmo que receba um nome por exemplo e um caractere, e verifique quantos deste caractere existe no nome fornecido, porem ele me retorna um valor incorreto, se alguém puder me dar umas dicas, agradeço! main(){ char nome[50], c[1]; int i, q; printf("Informe um nome: "); gets(nome); fflush(stdin); printf("\nInforme uma letra: "); gets(c); for(i=0;i<strlen(nome);i++){ if(nome[i]==c[1]){ q+=1; } } printf("A letra %c se repete: %i", c, q); }
Quando trabalhando com strings em C, lembre-se de que um array começa com o índice 0 e no caso c[1] não está pegando o caracter em si. 1 - Declaração de variáveis: char nome[50], c; 2 - printf("\nInforme uma letra: "); 3 - if(nome[i] == c){ Algumas dicas importantes: 2 curtidas
Valeu cara, não sabia disso, quando fiz a comparação minha intenção de por c[1] era de informar o tamanho, n tinha me tocado que ele iria comparar o indice 1, e não sabia que apenas com uma letra não precisava declarar o tamanho e que pra receber precisava ser o getchar(). 1 curtida
#include <stdio.h> main(){ char nome[50], c; printf(“Informe um nome: “); gets(nome); fflush(stdin); printf(”\nInforme uma letra: “); scanf(”%c”,&c); for(i=0;i<strlen(nome);i++){ if(nome[i]==c){ q+=1; } } printf(“A letra %c se repete: %i”, c, q); } |