計算機程式設計 - 字串



在我們關於字元的討論中,我們瞭解到字元資料型別處理單個字元,您可以將鍵盤上的任何字元分配給字元型別變數。

現在,讓我們稍微向前邁進,並考慮一種需要在變數中儲存多個字元的情況。我們已經看到,C 程式設計不允許在字元型別變數中儲存多個字元。因此,以下語句在 C 程式設計中無效併產生語法錯誤:

char ch1 = 'ab';
char ch2 = '10';

我們還了解了如何使用陣列的概念在變數中儲存多個相同資料型別的值。以下是儲存和列印五個整數型別陣列中的數字的語法:

#include <stdio.h>

main() {
   int number[5] = {10, 20, 30, 40, 50};
   int i = 0;
        
   while( i < 5 ) {
      printf("number[%d] = %d\n", i, number[i] );
      i = i + 1;
   }
}

當以上程式碼編譯並執行時,會產生以下結果:

number[0] = 10
number[1] = 20
number[2] = 30
number[3] = 40
number[4] = 50

現在,讓我們以與數字相同的方式定義一個包含五個字元的陣列,並嘗試列印它們:

#include <stdio.h>

main() {
   char ch[5] = {'H', 'e', 'l', 'l', 'o'};
   int i = 0;
        
   while( i < 5 ) {
      printf("ch[%d] = %c\n", i, ch[i] );
      i = i + 1;
   }
}

這裡,我們使用 %c 列印字元值。當以上程式碼編譯並執行時,會產生以下結果:

ch[0] = H
ch[1] = e
ch[2] = l
ch[3] = l
ch[4] = o

如果您完成了以上示例,那麼我認為您已經瞭解了字串在 C 程式設計中的工作原理,因為C 中的字串表示為字元陣列。C 程式設計簡化了字串的賦值和列印。讓我們再次檢查相同的示例,使用簡化的語法:

#include <stdio.h>

main() {
   char ch[5] = "Hello";
   int i = 0;
    
   /* Print as a complete string */
   printf("String = %s\n", ch);  

   /* Print character by character */
   while( i < 5 ) {
      printf("ch[%d] = %c\n", i, ch[i] );
      i = i + 1;
   }
}

這裡,我們使用 %s 使用陣列名稱ch列印完整的字串值,它實際上是儲存ch變數的記憶體地址的開頭,如下所示:

String Presentation in C/C++

雖然從以上示例中看不到,但 C 程式會在內部將空字元'\0'作為每個字串的最後一個字元。它指示字串的結束,這意味著如果您想在陣列中儲存一個 5 個字元的字串,那麼最好將陣列大小定義為 6,儘管 C 不會對此報錯。

如果以上程式碼編譯並執行,會產生以下結果:

String = Hello
ch[0] = H
ch[1] = e
ch[2] = l
ch[3] = l
ch[4] = o

基本字串概念

根據以上討論,我們可以得出以下關於 C 程式語言中字串的重要結論:

  • C 中的字串表示為字元陣列。

  • 我們可以透過將字元逐個分配到字元陣列中來構成 C 程式設計中的字串。

  • 我們可以透過將用雙引號括起來的完整字串分配給變數來構成 C 程式設計中的字串。

  • 我們可以使用陣列下標逐個列印字串字元,或者使用不帶下標的陣列名稱列印完整字串。

  • 每個字串的最後一個字元都是一個空字元,即‘\0’

  • 大多數程式語言提供內建函式來操作字串,例如,您可以連線字串、在字串中搜索、從字串中提取子字串等。更多資訊,您可以檢視我們關於 C 程式設計或任何其他程式語言的詳細教程。

Java 中的字串

雖然您可以使用字元陣列來儲存字串,但 Java 是一種高階程式語言,其設計者試圖提供額外的功能。Java 將字串作為一種內建資料型別,就像任何其他資料型別一樣。這意味著您可以直接定義字串,而不是將它們定義為字元陣列。

以下是 Java 中編寫的等效程式。Java 使用new運算子建立字串變數,如下面的程式所示。

您可以嘗試執行以下程式以檢視輸出:

public class DemoJava {
   public static void main(String []args) {
      String str = new String("Hello");  
      System.out.println( "String = " + str );
   }
}

當以上程式執行時,會產生以下結果:

String = Hello

Python 中的字串

在 Python 中建立字串就像使用單引號或雙引號將字串分配給 Python 變數一樣簡單。

下面是一個簡單的程式,它建立兩個字串並使用 print() 函式列印它們:

var1 = 'Hello World!'
var2 = "Python Programming"

print "var1 = ", var1
print "var2 = ", var2

當以上程式執行時,會產生以下結果:

var1 =  Hello World!
var2 =  Python Programming

Python 不支援字元型別;這些被視為長度為 1 的字串,因此也被視為子字串。

要訪問子字串,請使用方括號進行切片以及索引或索引來獲取子字串。請檢視以下程式碼段:

var1 = 'Hello World!'
var2 = "Python Programming"

print "var1[0]: ", var1[0]
print "var2[1:5]: ", var2[1:5]

當以上程式碼執行時,會產生以下結果:

var1[0]:  H
var2[1:5]:  ytho
廣告

© . All rights reserved.