我基本上試圖在數組中的某個索引之後存儲所有內容。代碼崩潰。試圖從字符數組中刪除字符C
例如,我想存儲一個聲明爲char name[10]
的名稱。如果用戶輸入15
字符,它將忽略前五個字符並將其餘字符存儲在char數組中,但是,我的程序崩潰。
這是我的代碼
char name[10];
cout<< "Starting position:" << endl;
cin >> startPos;
for(int i= startPos; i< startPos+10; i++)
{
cout << i << endl; // THIS WORKS
cout << i-startPos << endl; // THIS WORKS
name[i-startPos] = name[i]; // THIS CRASHES
}
例如,如果我的名字是McStevesonse
,我想程序只是存儲一切從第三的位置,所以最終的結果是Stevesonse
我真的感謝它,如果有人可以幫助我解決這個崩潰。
感謝
來刪除如果name被聲明爲name和startPos> 0, 10,所以'name [i]'將訪問超出分配的空間。你發佈的代碼在這方面不是很清楚,因爲你用文字描述了一半,而不是代碼。 – Misch 2014-12-02 20:48:52
如何將用戶輸入的15個字符存儲到'char name [10]'變量中?當你知道這個問題的答案時,你就會明白問題所在。不幸的是,你的程序的這部分不在你的問題中,所以我不能回答這個問題。但是,我可以告訴你,不可能將15個字符存儲到10個「char」數組中,而不會導致「未定義的行爲」,這往往會導致以後崩潰。 – 2014-12-02 20:53:20
您提供的代碼似乎與您所問的問題無關。 '如果用戶輸入了15個字符......';我沒有看到你的程序在任何地方要求用戶的名字。請更改您的問題和/或包含[MCVE](http://stackoverflow.com/help/mcve)。 – Julian 2014-12-02 21:13:52