RF transmitter-receiver pair not working (Virtual library )

I'm using an RF transmitter (434 MHz) to transmit analog inputs from a sensor to another Arduino using the virtual library. The transmitter seems to be working but the receiver is not getting anything .
The code wasn't compiling at first but then i made some changes in .CPP file and added some more header files
#include <Wire.h>
#include <VirtualWire.h>
#include <Serial.h>

then it compiled both the transmitter and the receiver here's the code

TRANSMITTER
#include <Wire.h>
#include <VirtualWire.h>
#include <Serial.h>

const int ledPin = 13;
const int Sensor1Pin = A0;
int Sensor1Data;
char Sensor1CharMsg[4];

void setup()
{

pinMode(ledPin,OUTPUT);
pinMode(Sensor1Pin,INPUT);
Serial.begin(9600);
vw_set_tx_pin(12);
vw_setup(2000);
}

void loop()
{

Sensor1Data = analogRead(Sensor1Pin);

itoa(Sensor1Data,Sensor1CharMsg,10);

digitalWrite(13, true);
vw_send((uint8_t *)Sensor1CharMsg, strlen(Sensor1CharMsg));
vw_wait_tx();
digitalWrite(13, false);
delay(200);

}

RECEIVER

#include <Wire.h>
#include <VirtualWire.h>
#include <Serial.h>

int ledPin = 13;
int Sensor1Data;
char Sensor1CharMsg[4];

void setup()
{
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
vw_set_ptt_inverted(true);
vw_setup(2000);
vw_set_rx_pin(12);
vw_rx_start();

}

void loop(){
uint8_t buf[VW_MAX_MESSAGE_LEN];
uint8_t buflen = VW_MAX_MESSAGE_LEN;

if (vw_get_message(buf, &buflen))
{
int i;
digitalWrite(13, true);
for (i = 0; i < buflen; i++)
{

Sensor1CharMsg = char(buf);
}

Sensor1CharMsg[buflen] = '\0';
Sensor1Data = atoi(Sensor1CharMsg);
Serial.print("Sensor 1: ");
Serial.println(Sensor1Data);
digitalWrite(13, false);
}
}

The code seems to be fine but the receiver is not giving any output on the Serial monitor neither is the LED lighting.
I checked voltage values of the data pin of the receiver it gave a high output for a high input at the transmitter but for a low input at the transmitter, receiver data pin is oscillating between high and low using a multimeter it gave something 1.5 to 1.6 volts but when i checked it on the analog input pin of arduino it was oscillating, it was either 1023 or 0 . My guess is the RF pair is not working fine at low inputs but any help to make it work will do.or any other library to make my RF pair work will help a lot
Thanks
Salahuddin

The receiver has some kind of automatic gain control. It can read a burst of data, but you can't measure the voltage when the transmitter is on or off.

Can you connect pieces of wire to the modules for an antenna. You can use 17cm, but almost any length is okay.

In the transmitter, your Sensor1CharMsg is size 4. That is [ 0 ] , [ 1 ] , [ 2 ] and [ 3 ] . A value of 1023 into a string is 5 (the end of a string is a zero terminator). Anything can happen when you overwrite the wrong memory location.

In the receiver, the for-loop is wrong and also the code below it. You should rewrite that.
The data is in the buffer, so you walk through the buffer with "buf [ i ] ".

Why do you transmit readable text with VirtualWire ? I know the example show that, but no one of us is using it that way. You can transmit binary data, like integers or bytes. For example an array of integers, or a 'struct' with all sorts of data. So you don't have to do all that itoa and atoi.

Could your tranmit a single byte (an 8-bit number) For example the value 83 ?
If that works, transmit an integer, that is two bytes.

Garbage data from the receiver is normal when you are not transmitting anything.
Its simply the digital equivelant of thermal noise.