你應該是說放在同一個一維陣列吧?
用二維陣列也行,不過沒啥好說的,
以下是用指標陣列的方式...
a[0]=>不使用
a[1]=>第一個名字
a[2]=>第二個名字
.....
a[a_n]=>最後一個名字- #include <cstdlib>
- #include <iostream>
- using namespace std;
- int main(int argc, char *argv[])
- {
- char array[1000]; //儲存的陣列
- char *a[100]; //指標陣列
- int a_n; //有資料的指標個數
- char x[10];
- int view;
-
- a_n=0; //初值,a[0]在程式中不使用
- a[0]=&array[0]; // 這三行不能省略否則下面會出錯
- *a[0]=0;
- do
- {
- a[a_n+1]=a[a_n]+strlen(a[a_n])+1; //下一指標指向上一個指標的位址+字串長+1(結束符號長度)
- a_n++;
- p rintf("請輸名字(%d):",a_n);
- s canf("%s",a[a_n]);
- p rintf("是否繼績輸入? y繼績/其它結束:");
- s canf("%s",x);
- }while(x[0]=='y' || x[0]=='Y');
-
- do
- {
- p rintf("請輸入要顯示的號數:");
- s canf("%d",&view);
- if(view<1 || view>a_n)
- {
- p rintf("輸入錯誤!!\n");
- continue;
- }
- p rintf("第%d個人的名字為:%s\n是否繼績顯示? y繼績/其它結束:",view,a[view]);
- s canf("%s",x);
- }while(x[0]=='y' || x[0]=='Y');
-
- system("PAUSE");
- return EXIT_SUCCESS;
- }
複製代碼 ... |