OK論壇

 找回密碼
 註冊
查看: 1130|回復: 1

C++ 簡單教學 第四章 字串、基礎陣列、深入迴圈、常數

[複製鏈接]
  • TA的每日心情

    2013-11-14 10:06 PM
  • 簽到天數: 11 天

    連續簽到: 1 天

    [LV.3]偶爾看看II

    發表於 2013-4-3 22:36:14 | 顯示全部樓層 |閱讀模式
    本帖最後由 KarK 於 2013-4-3 10:41 PM 編輯

    字元與字串:

    字元即是很多個字所組成,而字元是指單一個字:

    1. char c = 'a'; //字元

    2. string b = "abc"; //字串

    複製代碼
    注意!字元 char 型別若定義為 'abc' 只會輸出 c,因此,使用C++開發,強烈建議使用 string 字串型別。

    輸入字串:

    要使用  cin  來定義一個字串變數,首先必須引入標頭檔 #include "string";

    然後與一般變數相同:
    1. cin >> b;
    複製代碼
    注意!嘗試輸入中文字串,可能會在複製或是輸出時成為亂碼!



    陣列:

    陣列是一有向的向量類別,好比一個大到同時給五個學生用的一張桌子有五個抽屜,每個抽屜都可以放每個學生自己的東西。

    (注意!陣列位置計算由 0  開使)

    陣列定義、位置、常數:

    常數:

    即是不可改變之定值,於初始化後就已固定,不可更改,定義方式:

    關鍵字:const 型別 變數名稱 = 初始化值;
    1. const int size = 5;
    複製代碼


    這樣一來,size變數將於編譯後永遠是 5 ,且任何嘗試修改他的動作都將導致崩潰!


    定義陣列:

    1. 1.型別 變數名稱 [ 常數/定數 ]  = { (可省略,也可以初始化)};
    2. 2.const int size 5;
    3. 3.int arry [ 5(或是 size)] = { 2,4,6,8,10 (也可不初始化)};

    複製代碼
    注意!初始化內容多寡不可超過陣列長度,但是可以少於陣列長度!如:

    1. 1. int arry [ 5(或是 size)] = { 2(也可不初始化)};
    複製代碼
    單一下標,完全下標:

    注意,因為陣列是個有向的多存放式容器,因此當我們要存取某一個地方的值時,我們必須告訴編譯器位置:

    就以int arry [ 5 ] = { 2,4,6,8,10 }; 來說:

    當要存取 4 時,必須下標 arry [1];  //實際上是第二個位置

    因此 cout << arry [1];  可得 4  

    因為程式在計算位置時,皆是以 0 作為第一個位置!


    當你想完全的輸出陣列所有的值,而不是單一下標時,可以配合迴圈特性:
    1. for ( int i = 0 ; i < size ; i ++)  // i = 0 1 2 3 4
    2. {
    3. cout << arry; // 2 4 6 8
    4. }

    複製代碼

    自訂義陣列內容:

    由上方我們得知可以利用迴圈輸出陣列,相同的,我們也可以利用迴圈來輸入陣列之值:
      1. for ( int i = 0 ; i < size ; i ++)
      2. {
      3. cin >> arry;
      4. }
      5. for ( int i = 0 ; i < size ; i ++)
      6. {
      7. cout << arry;
      8. }
      複製代碼

    其結果我不再展示,請各位自行驗證!


    進階迴圈:

    迴圈除了可以用在陣列的應用以及數學的解題,我們還可以設計巢狀的迴圈,其效果如同:

    九九乘法表、三角形的輸出:
    1. <b>九九乘法表實作:
    2. for (int i = 1; i < 10 ; i++)
    3. {
    4.   for(int p = 1; p < 10; p++)
    5.   {
    6.   cout << i << " 乘上 " << p << " 是 : " << i * p << endl;
    7.   }
    8.   cout << endl;
    9. }
    10. 三角形輸出:
    11. for (int i = 0; i < 自訂義長度; i++){
    12. for (int a = 0 ; a <= i; a++){
    13.   cout << 自訂義符號; // 如"o"或"."
    14. }
    15. cout << endl;
    16. }
    17. </b>
    複製代碼


    由此兩例可以看出,迴圈有等待特性,上迴圈會等待下迴圈執行完之後在累加,此特性我們在日後會更常用到!


    下篇章節我們將會講到更深入的陣列應用和指標的基礎還有參照!

    回復

    使用道具 舉報

  • TA的每日心情
    郁悶
    2013-7-8 03:22 AM
  • 簽到天數: 40 天

    連續簽到: 1 天

    [LV.5]常住居民I

    發表於 2013-7-8 16:17:18 | 顯示全部樓層
    輸入最好玩的應該是printf 可以控制你要怎麼輸出
    陣列就更多了 是現在資工大一大二玩到瘋掉的方法
    有一般的陣列 有vector 有動態陣列 有指標陣列 有鏈結串列
    太多了...
    回復 支持 反對

    使用道具 舉報

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

    本版積分規則

    Archiver|手機版|小黑屋|OK討論區

    GMT+8, 2024-3-29 04:53 PM , Processed in 0.070961 second(s), 20 queries , Gzip On.

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

    快速回復 返回頂部 返回列表