一個字元串指針,改變其指向的字元串變量的值
用指針實作對其指向的字元數組輸入帶空格的字元串,用 cin.get()時,注意是否需要加cin.get();來吸收換行符
int n;
cin>>n;
cin.get();//用來吸收緩沖區留存的換行符\n
char pp[10];
char *p=pp;
cin.get(p,10,'\n');
cout<<p;
輸出:
1 //n的值
a dds f
a dds f
若為一個指針數組的某一進制素
要先為指針申請一個記憶體,char *p[n]隻是開辟了n個指針機關,若不申請空間,輸入的字元沒有地方放
char*p[n],*c[n];
for(int i=0;i<n;i++)
{ //此時p[i]相當于 一個指向char str[10]的 指針ip
p[i]=new char[100];//申請記憶體,并賦給char數組的首位址
c[i]=new char[100];
cin.get(p[i],100,'\n').get(c[i],100,'\n');
cout<<p[i]<<" "<<c[i];
}
結果錯誤:
//隻是成功的對p[i]所指的字元數組賦給變量
fg h
fg h
改為:
cin.get(p[i],100,'\n');
cin.get();//吸收回車
cin.get(c[i],100,'\n');
正确:
we rf //p[i]
rf dd //c[i]
we rf rf dd