跳轉到內容

程式設計基礎/實踐:字串和檔案

來自華夏公益教科書,開放的書本,開放的世界

章節摘要

[編輯 | 編輯原始碼]
  • 字串 - 通常用於顯示給使用者或作為使用者輸入的單個數字或字母的陣列。
  • 陣列 - 具有相同資料型別且具有單個識別符號名稱的元素的順序集合。
  • 字串函式 - 字串函式用於計算機程式語言中,用於操作字串或查詢有關字串的資訊。
  • 字串格式化 - 字串格式化使用字串插值(變數替換)的過程來評估包含一個或多個佔位符的字串文字,從而產生一個結果,其中佔位符被替換為它們對應的值。
  • 檔案輸入輸出 - 計算機檔案是計算機資源,用於將資料離散地記錄在計算機儲存裝置中。透過使用計算機程式,人們可以開啟、讀取、更改和關閉計算機檔案。計算機檔案可以重新開啟、修改和複製任意次數。
  • 從文字檔案載入陣列 - 從文字檔案載入陣列需要幾個步驟,包括:開啟檔案、讀取記錄、解析(拆分)記錄到欄位、將欄位新增到陣列以及關閉檔案。
  • 錯誤處理 - 預計程式執行時可能導致錯誤的條件。
  • 動態/靜態記憶體 - 分別與區域性和全域性範圍相關的記憶體。

複習問題

[編輯 | 編輯原始碼]
  1. C++ 中的字元資料型別使用雙引號,例如:char grade = “A”;
  2. Sizeof 是一個運算子,它告訴您資料型別在儲存中佔用多少位元組。
  3. Typedef 幫助聽障人士,是程式語言中為學習障礙人士提供的標準輔助功能之一。
  4. 為了節省空間,在定義變數時應使用序列運算子。
  5. 檔案規範指的是非常小的(像灰塵一樣)檔案。
  6. 裝置令牌是作業系統賦予您的程式的一個特殊非零值,與您請求開啟的檔案相關聯。
  7. 字串長度和儲存由編譯器或直譯器處理,而不是使用者或程式設計師。
  8. 字串既可以是文字常量,也可以是變數。
  9. 包含字串值的陣列可以以與單個字串相同的方式編輯。
  10. 程式只能逐行讀取檔案並一次處理一條記錄。

答案

  1. 錯誤
  2. 正確
  3. 錯誤 - Typedef 用於為任何現有資料型別分配備用名稱,這主要用於使用者定義的資料型別。
  4. 錯誤
  5. 錯誤
  6. 正確
  7. 正確
  8. 正確 - 文字常量是值,可以是字串。
  9. 正確
  10. 錯誤
  1. 描述允許對字串資料型別執行的常規操作。
  2. 描述為什麼一元正運算子毫無價值。
  3. 描述一元負運算子是如何工作的。
  4. 描述(在您選擇的語言中)您將如何
    • 將文字更改為全大寫
    • 從給定字串中刪除字母“b”。
    • string = "Hey buddy!"
  5. 描述您可以讀取檔案內容的不同方式。
  6. 描述字串操作與變數操作的不同之處

使用虛擬碼、流程圖工具或您選擇的程式語言完成以下活動。為輸入、每種處理型別和輸出使用單獨的函式。透過傳遞引數和返回結果來避免全域性變數。建立測試資料以驗證每個程式的準確性。在程式頂部添加註釋,幷包含對所用資源的引用。

字串活動

[編輯 | 編輯原始碼]
  1. 建立一個程式,要求使用者輸入包含名字和姓氏的一行文字,例如 Firstname Lastname。使用字串函式/方法解析該行並將姓名以姓氏、名字首字母的形式打印出來,例如 Lastname, F.。在名字首字母后包含一個句號。處理無效輸入錯誤,例如額外的空格或缺少姓名部分。
  2. 建立一個程式,要求使用者輸入一行文字。使用字串函式/方法刪除開頭、結尾和重複的空格,然後反向列印該行文字。例如
       the   cat   in   the   hat   
    tah eht ni tac eht
  3. 建立一個程式,要求使用者輸入一行逗號分隔值。它可以是一系列測試分數、姓名或任何其他值。使用字串函式/方法解析該行並將每個專案列印在單獨的行上。在列印時刪除逗號以及每個專案中任何開頭或結尾的空格。
  4. 建立一個程式,要求使用者輸入一行文字。然後要求使用者輸入每行要列印的字元數、要列印的行數和滾動方向(向右或向左)。使用給定的行文字,根據需要重複文字以填充給定的每行字元數。然後列印請求的行數,每次列印行時將整行的內容向左或向右移動一個字元。第一個或最後一個字元將被移位/追加到字串的另一端。例如
    Repeat this. Repeat this.
    epeat this. Repeat this. R
    peat this. Repeat this. Re

檔案活動

[編輯 | 編輯原始碼]

注意:以下每個活動僅使用程式碼來讀取檔案。無需使用程式碼建立檔案。

  1. 使用文字編輯器或 IDE,將以下姓名和等級分數列表複製並儲存為名為 scores.txt 的文字檔案
    Name,Score
    Joe Besser,70
    Curly Joe DeRita,0
    Larry Fine,80
    Curly Howard,65
    Moe Howard,100
    Shemp Howard,85
    建立一個程式,根據 scores.txt 中的輸入顯示最高分、最低分和平均分。驗證檔案是否存在,然後使用字串函式/方法解析檔案內容並將每個分數新增到陣列中。顯示陣列內容,然後計算並顯示最高分、最低分和平均分。將平均值格式化為兩位小數。請注意,該程式必須適用於檔案中給定的任何分數數量。不要假設始終有六個分數。
  2. 建立一個程式,根據 scores.txt 中的輸入顯示最高分、最低分和平均分。驗證檔案是否存在,然後使用字串函式/方法解析檔案內容並將每個分數新增到陣列中。顯示陣列內容,然後計算並顯示最高分、最低分和平均分。將平均值格式化為兩位小數。如果檔案格式不正確,請包含錯誤處理。請注意,該程式必須適用於檔案中給定的任何分數數量。不要假設始終有六個分數。
  3. 建立一個程式,要求使用者輸入包含 HTML 標籤的文字/HTML 檔案的名稱,例如
    <p><strong>This is a bold paragraph.</strong></p>
    驗證檔案是否存在,然後使用字串方法搜尋並刪除文字中的所有 HTML 標籤,並將每個刪除的標籤儲存在陣列中。顯示未標記的文字,然後顯示刪除的標籤陣列。例如
    This is a bold paragraph.
    <p>
    <strong>
    </strong>
    </p>
  4. 使用文字編輯器或 IDE,根據以下格式建立用於測試的姓名和地址文字檔案
    Firstname Lastname
    123 Any Street
    城市,州/省/地區 郵政編碼
    地址之間包含空行,且檔案至少包含三個地址。建立一個程式,驗證檔案是否存在,然後處理檔案並將每個地址顯示為以逗號分隔的值,格式如下
    姓氏, 名字, 地址, 城市, 州/省/地區, 郵政編碼

參考文獻

[編輯 | 編輯原始碼]
華夏公益教科書