Ir ao conteúdo

Bomfz

Membro Júnior
  • Posts

    3
  • Cadastrado em

  • Última visita

Tudo que Bomfz postou

  1. Bomfz

    C Ponteiros com string em C

    Boa tarde @arfneto ! Então, o que pretendo fazer com o código é que eu possa usar um ponteiro da string 'codigo' para a função, de modo que as alterações para a indentação dessa string sejam feitas também na main, assim podendo exibir com o printf o antes e o depois. Sobre o exemplo de indentação, realmente, se eu estivesse programando usaria somente os '\n', porém a orientação que recebi do professor era de exibi-lo usando os tabs também, por criei o código para organizar dessa forma. Sobre os vetores, realmente você tem razão, não tinha pensado em usar matrizes e realmente trará maior organização para o código. Sobre os ponteiros, realmente, só pude entender o erro após sua explicação! Foi de grande ajuda, e ajudou até no meu entendimento sobre o assunto de funcionamento dos ponteiros! Muito obrigado! A nível de curiosidade, vou mandar como ficou o código, e mais tarde com certeza farei as alterações na matriz. Mais uma vez, Obrigado! #include <stdio.h> #include <stdlib.h> #include <conio.h> void indentar(char codigo[1000]){ char codigo2[1000], codigo3[1000], codigo4[1000], codigo5[1000], codigo6[1000], codigo7[1000], codigo8[1000], codigo9[1000], codigo10[1000], codigo11[1000]; char aux[1000],aux2[1000],aux3[1000],aux4[1000],aux5[1000]; int i, n, x, y, z, a; while(codigo[i]!='{'){ codigo2[i]=codigo[i]; i++; } codigo2[i++]='{'; codigo2[i++]='\n'; codigo2[i++]='\t'; for(n=0; n<50; n++){ codigo3[n]=codigo[x+8]; x++; } //--------------------------------------------------------------------------------------------------------------------// i=0; n=0; x=0; while(codigo3[i]!=';'){ codigo4[i]=codigo3[i]; i++; } codigo4[i++]=';'; codigo4[i++]='\n'; codigo4[i++]='\t'; for(n=0; n<50; n++){ codigo5[n]=codigo3[x+11]; x++; } //--------------------------------------------------------------------------------------------------------------------// i=0; n=0; x=0; while(codigo5[i]!='{'){ codigo6[i]=codigo5[i]; i++; } codigo6[i++]='{'; codigo6[i++]='\n'; codigo6[i++]='\t'; codigo6[i++]='\t'; for(n=0; n<50; n++){ codigo7[n]=codigo5[x+12]; x++; } //--------------------------------------------------------------------------------------------------------------------// i=0; n=0; x=0; while(codigo7[i]!=';'){ codigo8[i]=codigo7[i]; i++; } codigo8[i++]=';'; codigo8[i++]='\n'; codigo8[i++]='\t'; for(n=0; n<50; n++){ codigo9[n]=codigo7[x+13]; x++; } //--------------------------------------------------------------------------------------------------------------------// i=0; n=0; x=0; while(codigo9[i]!='}'){ codigo10[i]=codigo9[i]; i++; } codigo10[i++]='}'; codigo10[i++]='\n'; for(n=0; n<50; n++){ codigo11[n]=codigo9[x+1]; x++; } //-------------------------------------------------------CONCATENANDO----------------------------------------------------// y=0; z=0; while(codigo2[y]!='\0'){ aux[y]=codigo2[y]; y++; } while(codigo4[z]!='\0'){ aux[y++]=codigo4[z++]; } aux[y]='\0'; //-------------------------------------------------------CONCATENANDO----------------------------------------------------// y=0; z=0; while(aux[y]!='\0'){ aux2[y]=aux[y]; y++; } while(codigo6[z]!='\0'){ aux2[y++]=codigo6[z++]; } aux2[y]='\0'; //-------------------------------------------------------CONCATENANDO----------------------------------------------------// y=0; z=0; while(aux2[y]!='\0'){ aux3[y]=aux2[y]; y++; } while(codigo8[z]!='\0'){ aux3[y++]=codigo8[z++]; } aux3[y]='\0'; //-------------------------------------------------------CONCATENANDO----------------------------------------------------// y=0; z=0; while(aux3[y]!='\0'){ aux4[y]=aux3[y]; y++; } while(codigo10[z]!='\0'){ aux4[y++]=codigo10[z++]; } aux4[y]='\0'; //-------------------------------------------------------CONCATENANDO----------------------------------------------------// y=0; z=0; while(aux4[y]!='\0'){ aux5[y]=aux4[y]; y++; } while(codigo11[z]!='\0'){ aux5[y++]=codigo11[z++]; } aux5[y]='\0'; //----------------------------------------------------------PASSANDO DE aux5 PARA codigo---------------------------------------------------- for(a=0; aux5[a]!='\0'; a++){ codigo[a]=aux5[a]; } } main(){ char codigo[1000] = "main() {int a = 10;while(true){printf('ok');}}"; char *cod; cod = codigo; printf("STRING ORIGINAL!\n\n"); printf("%s", &codigo); indentar(cod); printf("\n\nSTRING MODIFICADA!\n\n"); printf("%s", &codigo); }
  2. Bomfz

    C Ponteiros com string em C

    @Lucca Rodrigues Bom dia Lucca, cara eu n tinha colocado ponteiros porque tentei usar e n tive sucesso. A ideia no caso seria de eliminar esse printf que está dentro da função, o que exibe o aux5 no caso, para exibir a resposta final pelo ultimo printf da main. tentei fazer umas alterações no código e o que cheguei até agr foi isso: #include <stdio.h> #include <stdlib.h> #include <conio.h> char indentar(char *codigo[1000]){ char codigo2[1000], codigo3[1000], codigo4[1000], codigo5[1000], codigo6[1000], codigo7[1000], codigo8[1000], codigo9[1000], codigo10[1000], codigo11[1000]; char aux[1000],aux2[1000],aux3[1000],aux4[1000],aux5[1000]; int i, n, x, y, z; while(*codigo[i]!='{'){ codigo2[i]=*codigo[i]; i++; } codigo2[i++]='{'; codigo2[i++]='\n'; codigo2[i++]='\t'; for(n=0; n<50; n++){ codigo3[n]=*codigo[x+8]; x++; } //--------------------------------------------------------------------------------------------------------------------// i=0; n=0; x=0; while(codigo3[i]!=';'){ codigo4[i]=codigo3[i]; i++; } codigo4[i++]=';'; codigo4[i++]='\n'; codigo4[i++]='\t'; for(n=0; n<50; n++){ codigo5[n]=codigo3[x+11]; x++; } //--------------------------------------------------------------------------------------------------------------------// i=0; n=0; x=0; while(codigo5[i]!='{'){ codigo6[i]=codigo5[i]; i++; } codigo6[i++]='{'; codigo6[i++]='\n'; codigo6[i++]='\t'; codigo6[i++]='\t'; for(n=0; n<50; n++){ codigo7[n]=codigo5[x+12]; x++; } //--------------------------------------------------------------------------------------------------------------------// i=0; n=0; x=0; while(codigo7[i]!=';'){ codigo8[i]=codigo7[i]; i++; } codigo8[i++]=';'; codigo8[i++]='\n'; codigo8[i++]='\t'; for(n=0; n<50; n++){ codigo9[n]=codigo7[x+13]; x++; } //--------------------------------------------------------------------------------------------------------------------// i=0; n=0; x=0; while(codigo9[i]!='}'){ codigo10[i]=codigo9[i]; i++; } codigo10[i++]='}'; codigo10[i++]='\n'; for(n=0; n<50; n++){ codigo11[n]=codigo9[x+1]; x++; } //-------------------------------------------------------CONCATENANDO----------------------------------------------------// y=0; z=0; while(codigo2[y]!='\0'){ aux[y]=codigo2[y]; y++; } while(codigo4[z]!='\0'){ aux[y++]=codigo4[z++]; } aux[y]='\0'; //-------------------------------------------------------CONCATENANDO----------------------------------------------------// y=0; z=0; while(aux[y]!='\0'){ aux2[y]=aux[y]; y++; } while(codigo6[z]!='\0'){ aux2[y++]=codigo6[z++]; } aux2[y]='\0'; //-------------------------------------------------------CONCATENANDO----------------------------------------------------// y=0; z=0; while(aux2[y]!='\0'){ aux3[y]=aux2[y]; y++; } while(codigo8[z]!='\0'){ aux3[y++]=codigo8[z++]; } aux3[y]='\0'; //-------------------------------------------------------CONCATENANDO----------------------------------------------------// y=0; z=0; while(aux3[y]!='\0'){ aux4[y]=aux3[y]; y++; } while(codigo10[z]!='\0'){ aux4[y++]=codigo10[z++]; } aux4[y]='\0'; //-------------------------------------------------------CONCATENANDO----------------------------------------------------// y=0; z=0; while(aux4[y]!='\0'){ aux5[y]=aux4[y]; y++; } while(codigo11[z]!='\0'){ aux5[y++]=codigo11[z++]; } aux5[y]='\0'; //-------------------------------------------------------PASSANDO aux5 PARA codigo----------------------------------------------------// int a=0; while(aux5[a]!='\0'){ *codigo[a]=aux5[a]; i++; } } main(){ char codigo[1000] = "main() {int a = 10;while(true){printf('ok');}}"; char codigofinal[1000]; printf("STRING ORIGINAL!\n\n"); printf("%s", &codigo); indentar(codigo); printf("\nSTRING MODIFICADA!\n\n"); printf("%s", codigo); } Mas ele dá erro quando chega nessa linha da main( E o código não compila ): indentar(codigo); Sobre a questão do malloc e do realloc, essas foram funções que ainda n vi, então não sei muito bem do que se trata, mas darei uma estudada sim para tentar manter uma organização melhor do código! E sobre o uso do "&", realmente após o que você disse vi que realmente n se torna necessário nesse caso, e já vou corrigir. segue anexo do que aparece quando tento compilar o codigo:
  3. Bom dia pessoal! Estou precisando de uma ajuda, quem puder me dar um help eu agradeceria muito! Fiz o seguinte código que tem a ideia de indentar um código que está dentro da string, isso por meio de uma função. porém ainda estou meio confuso com ponteiros, e não estou conseguindo passar a variável "aux5", que representa o resultado final do código, para a minha main, para poder exibi-lo por meio do "printf", alguém pode me ajudar? #include <stdio.h> #include <stdlib.h> void identar(char codigo[1000]){ char codigo2[1000], codigo3[1000], codigo4[1000], codigo5[1000], codigo6[1000], codigo7[1000], codigo8[1000], codigo9[1000], codigo10[1000], codigo11[1000]; char aux[1000],aux2[1000],aux3[1000],aux4[1000],aux5[1000]; int i, n, x, y, z; while(codigo[i]!='{'){ codigo2[i]=codigo[i]; i++; } codigo2[i++]='{'; codigo2[i++]='\n'; codigo2[i++]='\t'; for(n=0; n<50; n++){ codigo3[n]=codigo[x+8]; x++; } //--------------------------------------------------------------------------------------------------------------------// i=0; n=0; x=0; while(codigo3[i]!=';'){ codigo4[i]=codigo3[i]; i++; } codigo4[i++]=';'; codigo4[i++]='\n'; codigo4[i++]='\t'; for(n=0; n<50; n++){ codigo5[n]=codigo3[x+11]; x++; } //--------------------------------------------------------------------------------------------------------------------// i=0; n=0; x=0; while(codigo5[i]!='{'){ codigo6[i]=codigo5[i]; i++; } codigo6[i++]='{'; codigo6[i++]='\n'; codigo6[i++]='\t'; codigo6[i++]='\t'; for(n=0; n<50; n++){ codigo7[n]=codigo5[x+12]; x++; } //--------------------------------------------------------------------------------------------------------------------// i=0; n=0; x=0; while(codigo7[i]!=';'){ codigo8[i]=codigo7[i]; i++; } codigo8[i++]=';'; codigo8[i++]='\n'; codigo8[i++]='\t'; for(n=0; n<50; n++){ codigo9[n]=codigo7[x+13]; x++; } //--------------------------------------------------------------------------------------------------------------------// i=0; n=0; x=0; while(codigo9[i]!='}'){ codigo10[i]=codigo9[i]; i++; } codigo10[i++]='}'; codigo10[i++]='\n'; for(n=0; n<50; n++){ codigo11[n]=codigo9[x+1]; x++; } //-------------------------------------------------------CONCATENANDO----------------------------------------------------// y=0; z=0; while(codigo2[y]!='\0'){ aux[y]=codigo2[y]; y++; } while(codigo4[z]!='\0'){ aux[y++]=codigo4[z++]; } aux[y]='\0'; //-------------------------------------------------------CONCATENANDO----------------------------------------------------// y=0; z=0; while(aux[y]!='\0'){ aux2[y]=aux[y]; y++; } while(codigo6[z]!='\0'){ aux2[y++]=codigo6[z++]; } aux2[y]='\0'; //-------------------------------------------------------CONCATENANDO----------------------------------------------------// y=0; z=0; while(aux2[y]!='\0'){ aux3[y]=aux2[y]; y++; } while(codigo8[z]!='\0'){ aux3[y++]=codigo8[z++]; } aux3[y]='\0'; //-------------------------------------------------------CONCATENANDO----------------------------------------------------// y=0; z=0; while(aux3[y]!='\0'){ aux4[y]=aux3[y]; y++; } while(codigo10[z]!='\0'){ aux4[y++]=codigo10[z++]; } aux4[y]='\0'; //-------------------------------------------------------CONCATENANDO----------------------------------------------------// y=0; z=0; while(aux4[y]!='\0'){ aux5[y]=aux4[y]; y++; } while(codigo11[z]!='\0'){ aux5[y++]=codigo11[z++]; } aux5[y]='\0'; printf("\n%s", aux5); } main(){ char codigo[1000] = "main() {int a = 10;while(true){printf('ok');}}"; printf("STRING ORIGINAL!\n\n"); printf("%s", &codigo); identar(codigo); printf("\nSTRING MODIFICADA!\n\n"); printf("%s", &codigo); } Segue anexo que como deveria ser a saída do código:

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...