agj 0 Denunciar post Postado Maio 21, 2006 Pessoal no meu sistema que eu estou desenvolvendo, em uma certa parte eu armazeno valores ou caracteres em uma string.por exemplona string "S1" o meu conteudo eh este (abcdef).o meu problema eh o seguinte o usuario me informa um caracter e eu preciso verificar se este caracter esta na string "S1".como eu faço isto?? agradeço qualquer ajuda...valew Compartilhar este post Link para o post Compartilhar em outros sites
ricci ottadnot 4 Denunciar post Postado Maio 21, 2006 uma string, no grosso modo, eh um vetor de caracteres. ela pode ser analizada elemento por elemento atraves de um indice.. por exemplo.. for(int i=0;i<length(S1);i++) if(S1[i] == 'a') cont++; estou analizando caractere por caractere da string e se algum for igual ao caractere 'a' eu incremento uma variavel contadora.. no final terei qtos caracteres 'a' existem em minha string.. eh soh implementar este codigo simples com seu problema.. flw Compartilhar este post Link para o post Compartilhar em outros sites
agj 0 Denunciar post Postado Maio 21, 2006 Ok muito obrigado....soh mudei um pouco ao inves do length usei o SIZE(), mas o meu problema eh um pouco mais complexo, eu analizo o caracter enformado pelo usuario, verifico se ele existe na string, se exestir eu armazeno na matriz, se nao exestir e retorno para que o usuario informe outro caracter. segue um trecho do codigo for (i=0; i<3; i++) { cout << "Informe o estado de origem: " ; cin >> n; for(k=0; k<s2.size(); k++){ if(s2[k] == 'n') { MT [0] = n; // como ficaria esta linha ???????? aqui ele deve armazenar na matriz } else { cout << "Estado nao existe" ; system("PAUSE"); } } neste codigo ainda esta faltando o retorno caso o caracter nao exista...como ficaria este retorno???? estou tentando "consertar" este codigo. Se alguem puder me ajudar eu agradeço.. valew.... Compartilhar este post Link para o post Compartilhar em outros sites
ricci ottadnot 4 Denunciar post Postado Maio 23, 2006 n eh bom q sua matriz seja controlada pelo indice i do for, pois pode acontecer q o usuario entre com um caractere que naum existe na string, aew sua matriz ia ficar com um "buraco".. use um indice independente do laço q soh sera incrementado se a condiçao do if for verdadeira.. for (i=0,j=0; i<3; i++) { cout << "Informe o estado de origem: " ; cin >> n; for(k=0; k<s2.size(); k++){ if(s2[k] == n) // aki eu retirei as aspas da varivel n { MT [j][0] = n; j++; } else { cout << "Estado nao existe" ; system("PAUSE"); } } mas, caso você queira implementar isto como uma função, aconselho trabalhar com ponteiros.. int findcharinstr(string s2;char n;int *cont)onde s2 sera a sua stringn o caracterer q o usuario entrou e cont eh uma variavel contadora.. obs.: para utilizar o tipo string incluir a biblioteca string.h.. flw qq coisa posta aew Compartilhar este post Link para o post Compartilhar em outros sites
Cypher 0 Denunciar post Postado Maio 23, 2006 é claro que não quero os voços algoritmos em questão mas mal olhei notei logo um grave erro (nem reparei aos códigos) que muitos programadores cometem ONDE ESTÁ a IDENTAÇÂOquando alguem analisa um código deve ver sem qualquer esforço as estruturas, eu li um decumento sobre algrimtia (identação e mais coisas ) vou procurar depois deixo aqui o endereço!!!! Compartilhar este post Link para o post Compartilhar em outros sites
ricci ottadnot 4 Denunciar post Postado Maio 23, 2006 não se você percebeu, mas a tag "Adicionar Quote" do nosso editor do forum não permite a inserção de varios caracteres em branco (excenciais para a identação do codigo).. a solução seria escrever este codigo dentro das tags "Code" de nosso editor, mas este naum permite a inserção de caracteres em negrito.. Eu, com a necessidade de destacar a variavel j dentro de meu codigo, optei em utilizar a tag "Adicionar Quote".. Não cabe fazer este tipo d comentario sobre os codigos.. Compartilhar este post Link para o post Compartilhar em outros sites
agj 0 Denunciar post Postado Maio 24, 2006 valew as dicas....mas consegui resolver este problema de uma outra maneira.... utilizei o DO WHILE e mais uma variavel boleana pra controlar o estado da minha varivel, pode não ser a maneira mais inteligente mas funciona perfeitamente... aqui esta um trechinho do codigo for (j=1; j<=3; j++) { do { ok = false; cout << "Informe o Simbolo: "; cin >> n; cout << "-------------------------------------------------"<<endl; for (k=0; k<=s1.size(); k++) { if(s1[k] == n) { MT [j] = n; ok = true; j++; } } if(ok == false) { cout << "Simbolo Invalido:" << endl; cout << "-------------------------------------------------"<<endl; cout << endl; } } while (ok == false); Compartilhar este post Link para o post Compartilhar em outros sites
Cypher 0 Denunciar post Postado Maio 25, 2006 p**** nem mesmo depois de avisar.Por acaso não notas uma enorme dificuldade em encontrar as estruturas !!!! EU NOTOCypher :) Compartilhar este post Link para o post Compartilhar em outros sites
Cypher 0 Denunciar post Postado Maio 25, 2006 for (j=1; j<=3; j++){ do{ ok = false; cout << "Informe o Simbolo: "; cin >> n; cout << "-------------------------------------------------"<<endl; for (k=0; k<=s1.size(); k++){ if(s1[k] == n){ MT [i][j] = n; ok = true; j++; } } if(ok == false){ cout << "Simbolo Invalido:" << endl; cout << "-------------------------------------------------"<<endl; cout << endl; } } while (ok == false);} seria mais assim.... agora a sério não se notão melhor as estruturas, pondo um ao lado do outro qual é que se analiza mais depressa... levem esta critica como uma critica construtiva Cypher :) Compartilhar este post Link para o post Compartilhar em outros sites
ricci ottadnot 4 Denunciar post Postado Maio 26, 2006 otima observação..vamos fzer uma campanha para q os desenvolvedores do iMasters aumentem consideravelmente o tamanho do botao Code.. :D Compartilhar este post Link para o post Compartilhar em outros sites
Cypher 0 Denunciar post Postado Maio 26, 2006 ya isso mas também um parte do forum como existe para o vb, c/c++,etc para o PASCAL, será para inferiorizar esta linguagem magnifica??Cypher :) Compartilhar este post Link para o post Compartilhar em outros sites