Created
October 12, 2018 19:05
-
-
Save xspager/a3c4df1b3eea705e5c01b4a3c8cec9b9 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#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