天天看點

指針學習之對字元串指針的使用

一個字元串指針,改變其指向的字元串變量的值

用指針實作對其指向的字元數組輸入帶空格的字元串,用 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
           

繼續閱讀