找回密碼 或 安全提問
 註冊
|註冊|登錄

伊莉討論區

搜索
尊貴會員無限下載附件儲值後自動升級用戶組安全提問(回答) 和 永久尊貴會員 事宜
火影忍者無修七龍珠催眠julia鬼滅之刃adobe
sivr 336泷泽萝拉田舍とある人市井貴女claire'sstory of

休閒聊天興趣交流學術文化旅遊交流飲食交流家庭事務PC GAMETV GAME
熱門線上其他線上感情感性寵物交流家族門派動漫交流貼圖分享BL/GL
音樂世界影視娛樂女性頻道潮流資訊BT下載區GB下載區下載分享短片
電腦資訊數碼產品手機交流交易廣場網站事務長篇小說體育運動時事經濟
上班一族博彩娛樂

(4月新番)[繁]格林童

[繁]無職轉生 第二季1

[繁]轉生貴族憑鑑定技

[繁]從Lv2開始開外掛

[繁]月光下的異世界之

(4月新番)[繁]終末的
C & C++ 語言C# 語言Visual Basic 語言PHP 語言JAVA 語言
查看: 2164|回復: 7
打印上一主題下一主題

[問題](DevC++)怎麼把不同長度的字放到同一個陣列或字串?[複製鏈接]

帖子
0
積分
0 點
潛水值
930 米
跳轉到指定樓層
樓主
發表於 2010-5-1 09:59 PM|只看該作者|倒序瀏覽
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. void
  4. name();
  5. char Name[20]={0};

  6. int main()
  7. {
  8.     int i=0;

  9.    char x;
  10.     name();
  11.     while(1)
  12.     {
  13.       
  14. p r i n t f("是否繼續輸入(y/n)? ");
  15.        s c a n f("%s", &x);
  16.       
  17. if(x=='y')
  18.        {
  19.            name();
  20.        }
  21.        else
  22. if(x=='n')   break;
  23.     }
  24.     system("pause");
  25. }

  26. void
  27. name()
  28. {
  29.    p r i n t f("輸入名字: ");
  30.    s c a n f("%s",
  31. &Name);
  32. }
複製代碼
以上是我目前會寫的@@

我希望程式可以讓使用者輸入一些名字後,放到同一個陣列或字串裡
然後使用者按n不再輸入後,可以輸出:
第1個人的名子:XXX
第2個人的名子:WWW
第3個人的名子:YYY   ...依此類推

希望有高手能教我~感恩!^^...
瀏覽完整內容,請先 註冊登入會員
分享分享0收藏收藏0支持支持0
成為伊莉的版主,你將獲得更高級和無限的權限。把你感興趣的版面一步步地發展和豐盛,那種滿足感等著你來嚐嚐喔。

使用道具檢舉

  尊貴會員

大綿羊 超級大耗呆

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

帖子
802
積分
2980 點
潛水值
27720 米
頭香
發表於 2010-5-1 11:41 PM|只看該作者
若對尊貴或贊助會員有任何疑問,歡迎向我們查詢。我們的即時通或MSN: admin@eyny.com
本帖最後由 Force[TW] 於 2010-5-2 07:42 AM 編輯
以上是我目前會寫的@@

我希望程式可以讓使用者輸入一些名字後,放到同一個陣列或字串裡
然後使用者按n不 ...
ab78910 發表於 2010-5-1 09:59 PM
下載: 訪客無法瀏覽下載點,請先 註冊登入會員
...
瀏覽完整內容,請先 註冊登入會員
回覆中加入附件並不會使你增加積分,請使用主題方式發佈附件。

使用道具檢舉

帖子
0
積分
0 點
潛水值
930 米
3
發表於 2010-5-2 07:58 AM|只看該作者
所有積分大於負-100的壞孩子,將可獲得重新機會成為懲罰生,權限跟幼兒生一樣。
感謝您的回覆~

那個程式碼的輸出是一串的,我希望輸出可以顯示
第一個人是:xxx
第二個人是:dsffpsd
.....依此類推

或者我指定要輸出第3個人的名字,他會只顯示第3個人的名字

麻煩高手了~~~^^
給我一些想法也可以,感恩^^

使用道具檢舉

runeray2000 該用戶已被刪除
4
發表於 2010-5-2 08:24 PM|只看該作者
你應該是說放在同一個一維陣列吧?

用二維陣列也行,不過沒啥好說的,

以下是用指標陣列的方式...

a[0]=>不使用
a[1]=>第一個名字
a[2]=>第二個名字
.....
a[a_n]=>最後一個名字
  1. #include <cstdlib>
  2. #include <iostream>
  3. using namespace std;
  4. int main(int argc, char *argv[])
  5. {
  6.     char array[1000];       //儲存的陣列
  7.     char *a[100];           //指標陣列
  8.     int  a_n;               //有資料的指標個數
  9.     char x[10];
  10.     int view;
  11.    
  12.     a_n=0;                //初值,a[0]在程式中不使用
  13.     a[0]=&array[0];     // 這三行不能省略否則下面會出錯
  14.     *a[0]=0;
  15.     do
  16.     {
  17.          a[a_n+1]=a[a_n]+strlen(a[a_n])+1;   //下一指標指向上一個指標的位址+字串長+1(結束符號長度)
  18.          a_n++;
  19.          p rintf("請輸名字(%d):",a_n);
  20.          s canf("%s",a[a_n]);
  21.          p rintf("是否繼績輸入? y繼績/其它結束:");
  22.          s canf("%s",x);
  23.     }while(x[0]=='y' || x[0]=='Y');
  24.    
  25.     do
  26.     {
  27.          p rintf("請輸入要顯示的號數:");
  28.          s canf("%d",&view);
  29.          if(view<1 || view>a_n)
  30.          {
  31.             p rintf("輸入錯誤!!\n");         
  32.             continue;
  33.          }
  34.          p rintf("第%d個人的名字為:%s\n是否繼績顯示? y繼績/其它結束:",view,a[view]);
  35.          s canf("%s",x);
  36.     }while(x[0]=='y' || x[0]=='Y');   
  37.    
  38.     system("PAUSE");
  39.     return EXIT_SUCCESS;
  40. }
複製代碼
...
瀏覽完整內容,請先 註冊登入會員
分享使你變得更實在,可以使其他人感到快樂,分享是我們的動力。今天就來分享你的資訊、圖片或檔案吧。

使用道具檢舉

runeray2000 該用戶已被刪除
5
發表於 2010-5-2 08:29 PM|只看該作者
下面是二維陣列的作法
差別在不用指來指去,但是浪費掉的記憶空間比較大

  1. #include <cstdlib>
  2. #include <iostream>
  3. using namespace std;
  4. int main(int argc, char *argv[])
  5. {
  6.     char a[30][100];       //儲存的陣列
  7.     int  a_n;               //有資料的個數
  8.     char x[10];
  9.     int view;
  10.    
  11.     a_n=0;                //初值,a[0]在程式中不使用
  12.     a[0][0]=0;
  13.     do
  14.     {
  15.          a_n++;
  16.          p rintf("請輸名字(%d):",a_n);
  17.          s canf("%s",a[a_n]);
  18.          p rintf("是否繼績輸入? y繼績/其它結束:");
  19.          s canf("%s",x);
  20.     }while(x[0]=='y' || x[0]=='Y');
  21.    
  22.     do
  23.     {
  24.          p rintf("請輸入要顯示的號數:");
  25.          s canf("%d",&view);
  26.          if(view<1 || view>a_n)
  27.          {
  28.             p rintf("輸入錯誤!!\n");         
  29.             continue;
  30.          }
  31.          p rintf("第%d個人的名字為:%s\n是否繼績顯示? y繼績/其它結束:",view,a[view]);
  32.          s canf("%s",x);
  33.     }while(x[0]=='y' || x[0]=='Y');   
  34.   
  35.     system("PAUSE");
  36.     return EXIT_SUCCESS;
  37. }
複製代碼
...
瀏覽完整內容,請先 註冊登入會員





使用道具檢舉

  尊貴會員

大綿羊 超級大耗呆

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

帖子
802
積分
2980 點
潛水值
27720 米
6
發表於 2010-5-2 08:35 PM|只看該作者
如果你忘記伊莉的密碼,請在登入時按右邊出現的 '找回密碼'。輸入相關資料後送出,系統就會把密碼寄到你的E-Mail。
本帖最後由 Force[TW] 於 2010-5-2 08:39 PM 編輯
感謝您的回覆~

那個程式碼的輸出是一串的,我希望輸出可以顯示
第一個人是:xxx
第二個人是:dsffpsd
. ...
ab78910 發表於 2010-5-2 07:58 AM
下載: 訪客無法瀏覽下載點,請先 註冊登入會員
...
瀏覽完整內容,請先 註冊登入會員

使用道具檢舉

  尊貴會員

大綿羊 超級大耗呆

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

帖子
802
積分
2980 點
潛水值
27720 米
7
發表於 2010-5-2 08:56 PM|只看該作者
若對尊貴或贊助會員有任何疑問,歡迎向我們查詢。我們的即時通或MSN: admin@eyny.com
本帖最後由 Force[TW] 於 2010-5-2 09:03 PM 編輯

以下是採用 C++ STL vector 儲存姓名,僅受限於記憶體,人數沒有限制
可以一直輸入姓名,這個方法比較簡單。

外部程式碼連結(內容同下方程式碼):
下載: 訪客無法瀏覽下載點,請先 註冊登入會員
...
瀏覽完整內容,請先 註冊登入會員

使用道具檢舉

帖子
0
積分
0 點
潛水值
930 米
8
發表於 2010-5-2 11:13 PM|只看該作者
若瀏覽伊莉的時侯發生問題或不正常情況,請使用Internet Explorer(I.E)。
感謝各位高手的回覆!

我會把程式碼看懂的~

真的很感恩^^

使用道具檢舉

您需要登錄後才可以回帖 登錄 | 註冊

Powered by Discuz!

© Comsenz Inc.

重要聲明:本討論區是以即時上載留言的方式運作,對所有留言的真實性、完整性及立場等,不負任何法律責任。而一切留言之言論只代表留言者個人意見,並非本網站之立場,用戶不應信賴內容,並應自行判斷內容之真實性。於有關情形下,用戶應尋求專業意見(如涉及醫療、法律或投資等問題)。 由於本討論區受到「即時上載留言」運作方式所規限,故不能完全監察所有留言,若讀者發現有留言出現問題,請聯絡我們。有權刪除任何留言及拒絕任何人士上載留言,同時亦有不刪除留言的權利。切勿上傳和撰寫 侵犯版權(未經授權)、粗言穢語、誹謗、渲染色情暴力或人身攻擊的言論,敬請自律。本網站保留一切法律權利。
回頂部