The program I wrote should in theory ask for the character to censor with printf and then execute scanf, but printf is shown on the terminal after scanf.
I read about the buffer problem but even after using fflush(stdout) after printf, scanf still gets executed before printf in the terminal.
Here's the code:
#include <stdio.h>
#include <string.h>
int main() {
  char str[1000];
  char* ptr = &str[0];
  char x;
  printf("Please enter the string: ");
  fflush(stdout);
  scanf("%s\n", str);
  printf("Please enter the character you want to censor: ");
  fflush(stdout);
  scanf("%c\n", &x);
  for( int i = 0; i < strlen(str); i++){
    if ( *ptr == x)
    {
      *ptr = '#';
    }
    ptr++;
  }
  printf("%s\n", str);
}