Ir ao conteúdo

caracter em c


lronetto

Posts recomendados

Postado

ai pessoal to com probleminha neste codigo ai em baixo...

ele substitui cao de um arquivo por % e grava em outro arquivo...

mas ele n ta escrevendo tudo ta comendo algumas letras... logo as que estão do lado do c...

quero que ele imprima tudo substituindo (cao) por % mas sem comer nenhuma letra

valeu...!!!

#include <conio.h>

#include <iostream>

#include <math.h>

#include <time.h>

using namespace std;

int main (){

FILE *fp,*fp1;

int i=0;

char c;

fp=fopen("arq1.txt","r+");

fp1=fopen("arq2.txt","w+");

c=fgetc(fp);

while(!feof(fp)){

if(c=='c'){

c=fgetc(fp);

if(c=='a'){

c=getc(fp);

if(c=='o'){

i=1;

}

}

}

if(i){

fprintf(fp1,"%");

}

else{

fprintf(fp1,"%c",c);

c=fgetc(fp);

}

i=0;

}

fclose(fp);

fclose(fp1);

}

Postado

Sua lógica está errada - está comendo todos os 'c', 'a' e 'o' e não só quando eles estão juntos. Além disso, o "%" não está sendo impresso corretamente. Aí tem uma solução:


// #include <conio.h>
#include <iostream>
// #include <math.h>
// #include <time.h>
using namespace std;
int main (){
FILE *fp,*fp1;
int i = 0;
char c, a, o;
fp=fopen("arq1.txt","r+");
fp1=fopen("arq2.txt","w+");
c=fgetc(fp);
while(!feof(fp)){
if(c=='c'){
a=fgetc(fp);
if(a=='a'){
o=getc(fp);
if(o=='o'){
fprintf(fp1,"%%");
i = 0;
}
else {
fprintf(fp1,"ca%c", o);
i = 0;
}
}
else {
fprintf(fp1,"c%c", a);
i = 0;
}
}
else
fprintf(fp1,"%c",c);

c=fgetc(fp);
}
fclose(fp);
fclose(fp1);
}

JP

Postado
Sua lógica está errada - está comendo todos os 'c', 'a' e 'o' e não só quando eles estão juntos. Além disso, o "%" não está sendo impresso corretamente. Aí tem uma solução:


// #include <conio.h>
#include <iostream>
// #include <math.h>
// #include <time.h>
using namespace std;
int main (){
FILE *fp,*fp1;
int i = 0;
char c, a, o;
fp=fopen("arq1.txt","r+");
fp1=fopen("arq2.txt","w+");
c=fgetc(fp);
while(!feof(fp)){
if(c=='c'){
a=fgetc(fp);
if(a=='a'){
o=getc(fp);
if(o=='o'){
fprintf(fp1,"%%");
i = 0;
}
else {
fprintf(fp1,"ca%c", o);
i = 0;
}
}
else {
fprintf(fp1,"c%c", a);
i = 0;
}
}
else
fprintf(fp1,"%c",c);

c=fgetc(fp);
}
fclose(fp);
fclose(fp1);
}

JP

valeu...

deu certo...

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!