日期:2023年7月31日
前言
以下的內容包含
- 取得字串長度
- 判斷字串是否為空字串
- 比較字串內容是否相等
- 複製字串
- 連接字串
- 改變字串內容
取得字串長度
Python 語法
語法為
len(字串名稱)
回傳值格式為 int,例如
s = "abcde"
print(len(s))
印出的值為5。
C++ 語法
需要先引入函式庫 string,取得字串長度的語法有兩種
字串名稱.size();
字串名稱.length();
回傳值格式為沒有正負號的整數 sizt_t,例如
#include <iostream>
#include <string>
using namespace std;
int main() {
string s = "abcde";
cout << s.size() << endl;
cout << s.length() << endl;
return 0;
}
兩種寫法印出的值都是5。接下來的文章中,C++ 的程式碼都會省略 int main() 以外的部分。
判斷字串是否為空字串
Python 語法
方法1是利用字串長度,空字串的長度為0,例如
s = ""
if len(s) == 0: print("s is empty.")
else: print("len(s) = {:d}".format(len(s)))
方法2是直接將字串物件丢到 if 中,如果字串中有內容為 True,如果是空字串為 Fasle。以下的程式碼第2行在 s 前面加上 not,是為了要讓空字串觸發 if 條件成立的程式碼,加上 not 將布林值反過來。
s = ""
if not s: print("s is empty.")
else: print("len(s) = {:d}".format(len(s)))
C++ 語法
方法1是利用字串長度,空字串的長度為0,可以用 size() 或是 length() 取得字串長度,例如
string s = "";
if (s.size() == 0) {
cout << "s is empty." << endl;
} else {
cout << "The length of s is " << s.size() << endl;
}
方法2是利用 empty(),語法為
字串名稱.empty();
若為空字串回傳 1,若字串有內容回傳 0。以下的程式碼第2行在 s.empty() 前面加上 !,是為了要讓空字串觸發 if 條件成立的程式碼,加上 ! 將布林值反過來。
string s = "";
if (!s.empty()) {
cout << "s is empty." << endl;
} else {
cout << "The length of s is " << s.size() << endl;
}
比較字串內容是否相同
Python 語法
使用 == 即可,若兩個字串內容相同回傳 True,若兩個字串內容不相同回傳 False,例如
s1 = "abcde"
s2 = "abcde"
s3 = "bcde"
print(s1 == s2) # 印出的值為 True
print(s1 == s3) # 印出的值為 False
C++ 語法
使用 == 即可,若兩個字串內容相同回傳 1,若兩個字串內容不相同回傳 0,例如
string s1 = "abcde", s2 = "abcde", s3 = "abcd";
cout << (s1 == s2) << endl; // 印出的值為 1
cout << (s1 == s3) << endl; // 印出的值為 0
複製字串
Python 語法
使用 = 即可,可以配合索引值複製字串中的部分內容,例如
s1 = "abcde"
s2 = s # s2 內容為 abcde
s3 = s[1:4] # s3 內容為 bcd,由索引值 1 開始,不包含結尾索引值 4 的內容
s4 = s[:4] # s4 內容為 abcd,由索引值 0 開始,不包含結尾索引值為 4 的內容
s5 = s[1:] # s5 內容為 bcde,由索引值 1 開始直到字串結尾
C++ 語法
使用 = 即可,可以配合 substr 複製字串中的部分內容,substr 的語法為
字串名稱.substr(起點索引值, 取出的字串長度);
取出的字串長度可以省略,預設值為取到字串結尾處。例如
string s1 = "abcde";
string s2 = s1; // s2 內容為 abcde
string s3 = s1.substr(1, 3); // s3 內容為 bcd,由索引值 1 開始,取出字串的長度為 3
string s4 = s1.substr(0, 4); // s4 內容為 abcd,由索引值 0 開始,取出字串的長度為 4
string s5 = s1.substr(1); // s5 內容為 bcde,由索引值 1 開始直到字串字串結尾
連接字串
Python 語法
使用 + 即可,例如
s1 = "abcde"
s2 = "fghij"
s3 = s1 + s2 # s3 內容為 abcdefghij
C++ 語法
使用 + 即可,例如
string s1 = "abcde", s2 = "fghij";
string s3 = s1 + s2; // s3 內容為 abcdefghij
改變字串內容
Python 語法
由於 Python 的字串物件無法改變內容,如果用以下的語法會出錯
s = "abcde"
s[0] = "f"
正確的語法是用 + 並配合索引值取出要留下的字串內容,重新定義要改變內容的字串物件,例如
s = "abcde"
s = "f" + s[1:] # s 內容為變為 fbcde
C++ 語法
C++ 的語法有兩種,方法1是配合索引值取代字串內容,輸入的內容格式為字元 (char),記得要用單引號,例如
string s = "abcde";
s[0] = 'f'; // s 內容為變為 fbcde
方法2是用 + 並配合 substr 取出要留下的字串內容,例如
string s = "abcde";
s = "f" + s.substr(1); // s 內容為變為 fbcde
結語
以上是我目前常用到的字串處理內容,如果之後有遇到其它需求會再補充內容。
HackMD 版本連結:https://hackmd.io/@yizhewang/ryjVpoVsh
沒有留言:
張貼留言