Skip to content

Instantly share code, notes, and snippets.

@xspager
Created October 12, 2018 19:05
Show Gist options
  • Save xspager/a3c4df1b3eea705e5c01b4a3c8cec9b9 to your computer and use it in GitHub Desktop.
Save xspager/a3c4df1b3eea705e5c01b4a3c8cec9b9 to your computer and use it in GitHub Desktop.
#include <stdio.h>
#include <string.h>
/*
Frase1: Em de espeto de
Frase2: casa ferreiro eh pau
Frase3: Em casa de ferreiro espeto eh de pau
*/
char frase1[] = "Em de espeto de";
char frase2[] = "casa ferreiro eh pau";
void pointer_wrong()
{
char *frase1_ptr = &frase1, *frase2_ptr = &frase2;
printf("Frase1: %s\nFrase2: %s\n", frase1, frase2);
while(*frase1_ptr && *frase2_ptr) {
do {
printf("%c", *frase1_ptr++);
} while(*frase1_ptr != ' ' && *frase1_ptr);
do {
printf("%c", *frase2_ptr++);
} while(*frase2_ptr != ' ' && *frase2_ptr);
}
printf("\n");
}
void using_indeces()
{
int i1, i2;
int i_palavras_frase1[10], i_palavras_frase2[10];
int palavras_frase1 = 0, palavras_frase2 = 0;
int i_letra = 0;
char tmp[40] = "";
i_palavras_frase1[palavras_frase1] = 0;
for(i1 = 0; i1 < strlen(frase1); i1++){
if(frase1[i1] == ' ') {
palavras_frase1++;
i_palavras_frase1[palavras_frase1] = i1+1;
}
}
i_palavras_frase2[palavras_frase2] = 0;
for(i2 = 0; i2 < strlen(frase2); i2++){
if(frase2[i2] == ' ') {
palavras_frase2++;
i_palavras_frase2[palavras_frase2] = i2+1;
}
}
// Mostra onde começam as palavras
printf("Frase1: %s\n", frase1);
for(int a = 0; a < strlen(frase1) + 8; a++) tmp[a] = ' ';
for(int b = 0; b <= palavras_frase1; b++) tmp[i_palavras_frase1[b]+8] = '^';
printf("%s\n", tmp);
printf("Frase2: %s\n", frase2);
for(int c = 0; c < strlen(frase2) + 8; c++) tmp[c] = ' ';
for(int d = 0; d <= palavras_frase2; d++) tmp[i_palavras_frase2[d]+8] = '^';
printf("%s\n", tmp);
// Imprime
printf("Frase3: \"");
for(int i = 0; i <= palavras_frase1 ; i++) {
i_letra = i_palavras_frase1[i];
while(frase1[i_letra] != ' ' && frase1[i_letra]){
printf("%c", frase1[i_letra]);
i_letra++;
}
printf(" ");
i_letra = i_palavras_frase2[i];
while(frase2[i_letra] != ' ' && frase2[i_letra]){
printf("%c", frase2[i_letra]);
i_letra++;
}
printf(" ");
}
printf("\"\n");
}
int main(){
//printf("Com ponteiros mas não está correto:\n");
//pointer_wrong();
//printf("\n\n");
printf("Com duas passadas usando array com os indices:\n");
using_indeces();
printf("\n\n");
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment