Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
ola pessoal, gostaria de saber como faço pra percorrer essa cadeia de caracteres para encontrar um determinado caractere.
Eu posso ler o valor total de cada linha(sei que no max cada linha terá 1000 caracteres) e fazer um for? mas claro, antes disso estou armazenando essa cadeia em um vetor
for(i=0;i<1000;i++){
if(vetor[i] == "caractere que eu procuro")
.
.
.
}
obrigado
mas só que fiquei com uma duvida, o que vai ser de entrada serao varias linhas e em cada linha haverá no maximo 1000 caracteres, entao ta certo se eu fizer a coisa toda ser inserida em um vetor de 1000 posições?
vou dar um exemplo:
entrada:
License Validation Service
Copyright 2008 Hugo Dworak and Creative Commons
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
Download the Corresponding Source of this program by visiting the project's gitweb and downloading a snapshot.
FIM
Ai eu passo diretamente isso pra um vetor de 1000 posiçoes?
Outra pergunta:
Preciso procurar por pontuações e letras com acento, fiz dessa forma:
resultAcentos = strcmp([vetor[i], "a");
if(resultAcentos > = 1){
vetor[i] = lixo;
}Mesmo que vc saiba que cada linha vai ter no máximo 1000 posições, ainda existe o problema de vc acessar algo além do tamanho do objeto. Por exemplo: a string é "pato" (com um '\0' no final) e vc acaba acessando a posição 10, digamos.
Você pode alocar o tal vetor estaticamente (char v[1000]), mas recomendo que use um for limitado ao tamanho do dado no array (e não a 1000 posições sempre):
for(int i=0; i < strlen(v); i++) {}
Quanto aos acentos e pontuação, eu usaria expressões regulares (http://www.cs.utah.edu/dept/old/texinfo/regex/regex.html), mas creio que dê p/ fazer usando isalpha e ispunct (não tenho certeza devido ao ASCII vs UTF-8 e não tenho compilador aqui no momento).
if(vetor[i] == 'c')
por exemplo.