2
I want the program to be able to store only one sentence per line. Each sentence is possible to be completed according to the signals I show in my code example. It does this but when printing on the screen does not print those same characters that indicate that you should change line.
int main() {
//char str[] = "Ola. Tudo bem?\n Sim e contigo?\n Comigo esta tudo bem! Que tens feito?\n Trabalho no projeto!\n";
char str[] = "Utilizador 1 --> Bom dia! Tudo bem contigo?\nUtilizador 2 --> Comigo tudo excelente. Que tens feito?\nUtilizador 1 --> De momento estou a trabalhar num projeto e tu?\nUtilizador 2 --> Eu tenho estudado uma nova linguagem, Java. Bastante interessante. Devias experimentar.\nUtilizador 2 --> Talvez experimente quando tiver algum tempo livre!\n";
char **matriz = malloc(sizeof(char *) * 255);
int caractere,coluna,i;
int linha = 0;
matriz[linha] = malloc(255);
for (caractere = 0, coluna = 0; str[caractere] != '\0'; caractere++, coluna++) {
if (str[caractere] == '?' || str[caractere] == '...' || str[caractere] == '!' || str[caractere] == '.') {
matriz[linha][coluna] = '\0';
matriz[linha] = realloc(matriz[linha], coluna + 1);
matriz[++linha] = malloc(255);
coluna = -1;
} else {
matriz[linha][coluna] = str[caractere];
}
}
matriz = realloc(matriz, sizeof(char *) * linha);
for (i = 0; i < linha; i++) {
printf("%s\n", matriz[i]);
}
}