Estoy tratando de recibir información del STDIN. Si la cadena de entrada comienza con el carácter '$', la entrada no se convierte en una cadena tal como está.
int main(int argc, char*argv[]){ printf("%s\n",argv[1]); }¿Puede alguien decirme por qué el compilador C reemplaza los caracteres con '0' si encuentra el símbolo '$'?
No es tu programa. Es su shell interpretándolo como una variable y luego pasando su valor a su programa.
Para evitar esto, escape el $ cuando invoque el programa desde su shell.
./yourprogram '$arg'