c++程序输入dag is .//判断字符中间有多少个空格,如何p[i]==' '条件不管用呢

c++程序输入dag is ...//判断字符中间有多少个空格,怎么p[i]==' '条件不管用呢?

#include "stdafx.h"
#include <iostream>
using namespace std;



int _tmain(int argc, _TCHAR* argv[])
{
char val[30] ={};
cin>>val;
char* p = val;
int count = 0;
for(int i =0 ; p[i]!='\0';i++)
{
if(p[i] == ' ')
{
count++;
}

}
return 0;
}


------解决方案--------------------
int main(int argc ,char *argv[])
{
char val[30] ={};
cin.getline(val,29);//用cin.getline()获取字符串
    char* p = val;
    int count = 0;
    for(int i =0 ; p[i]!='\0';i++)
    {
        if(p[i] == ' ')
        {
            count++;
        }
    } cout<<count;
    return 0;
}