Olá Pessoal, estou com uma dúvida, gostaria de saber como comparar um caracter (digitado pelo usuario) se possui no meu vetor de string. Pelo o que li a respeito a função strcmp compara apenas dois vetores ( de caracter ou inteiro) Exemplo //inteiro vet.codigo == x //string vet.nome == letra // supondo que letra esteje declarada como vetor(letra[30]). Meu código está assim: struct dados { int codigo; char nome[30]; float n1,n2; }; int main() { dados vet[100]; int ultimo=0,i; char achouletra; printf("==================\n"); printf("informe primeira letra do nome:"); scanf("%c",&achouletra); for(i=0;i<30;i++) // não sei se esse for esta correto { if(?) // como faço a comparação? { printf("codigo = %d\n",vet.codigo); printf("nome = %s\n",vet.nome); } } }
Olha aí eu preciso comparar um string que eu passo como parâmetro com vários tipos de caracteres, tipo: ‘!’, ‘#’, ‘@’… Como eu faço no Java??
Mas vc quer comparar como? [code] if ( a.equals( String.valueOf( ‘#’ ) ) { // a é igual a #}[/code]
Ou você pode pegar cada caractere da String e comparar: [code]String s = “Java”; for(int i = 0; i < s.length(); i++) { if(s.charAt(i) == ‘a’) System.out.printnl(“s[” + i + “] = a” ); }[/code]
hehe Valeu DIEGO2005 ERA ISSO MESMO QUE EU PRECISAVA…QUASE CHEGUEI LÁ, MAS COM SUA DICA DEU CERTO…VALEU MESTRE OLHA AÍ O CÓDIGO!!! [code]public void verificaNome() { String aux = nomediscip; if(aux.length() > 15) { System.out.println("Nome da disciplina excede o limite de 15 caracteres"); } for(int i=0; i < aux.length(); i++) { if(aux.charAt(i) == '!') System.out.println("erro de caracter"); } }[/code]
Que tal aprender um pouco sobre expressoes regulares? Resolve seu problema de forma bem mais facil
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); }
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 ==.
|