
- C 標準庫
- C 標準庫
- C++ 標準庫
- C++ 庫 - 首頁
- C++ 庫 - <fstream>
- C++ 庫 - <iomanip>
- C++ 庫 - <ios>
- C++ 庫 - <iosfwd>
- C++ 庫 - <iostream>
- C++ 庫 - <istream>
- C++ 庫 - <ostream>
- C++ 庫 - <sstream>
- C++ 庫 - <streambuf>
- C++ 庫 - <atomic>
- C++ 庫 - <complex>
- C++ 庫 - <exception>
- C++ 庫 - <functional>
- C++ 庫 - <limits>
- C++ 庫 - <locale>
- C++ 庫 - <memory>
- C++ 庫 - <new>
- C++ 庫 - <numeric>
- C++ 庫 - <regex>
- C++ 庫 - <stdexcept>
- C++ 庫 - <string>
- C++ 庫 - <thread>
- C++ 庫 - <tuple>
- C++ 庫 - <typeinfo>
- C++ 庫 - <utility>
- C++ 庫 - <valarray>
- C++ STL 庫
- C++ 庫 - <array>
- C++ 庫 - <bitset>
- C++ 庫 - <deque>
- C++ 庫 - <forward_list>
- C++ 庫 - <list>
- C++ 庫 - <map>
- C++ 庫 - <multimap>
- C++ 庫 - <queue>
- C++ 庫 - <priority_queue>
- C++ 庫 - <set>
- C++ 庫 - <stack>
- C++ 庫 - <unordered_map>
- C++ 庫 - <unordered_set>
- C++ 庫 - <vector>
- C++ 庫 - <algorithm>
- C++ 庫 - <iterator>
- C++ 高階庫
- C++ 庫 - <any>
- C++ 庫 - <barrier>
- C++ 庫 - <bit>
- C++ 庫 - <chrono>
- C++ 庫 - <cinttypes>
- C++ 庫 - <clocale>
- C++ 庫 - <condition_variable>
- C++ 庫 - <coroutine>
- C++ 庫 - <cstdlib>
- C++ 庫 - <cstring>
- C++ 庫 - <cuchar>
- C++ 庫 - <charconv>
- C++ 庫 - <cfenv>
- C++ 庫 - <cmath>
- C++ 庫 - <ccomplex>
- C++ 庫 - <expected>
- C++ 庫 - <format>
- C++ 庫 - <future>
- C++ 庫 - <flat_set>
- C++ 庫 - <flat_map>
- C++ 庫 - <filesystem>
- C++ 庫 - <generator>
- C++ 庫 - <initializer_list>
- C++ 庫 - <latch>
- C++ 庫 - <memory_resource>
- C++ 庫 - <mutex>
- C++ 庫 - <mdspan>
- C++ 庫 - <optional>
- C++ 庫 - <print>
- C++ 庫 - <ratio>
- C++ 庫 - <scoped_allocator>
- C++ 庫 - <semaphore>
- C++ 庫 - <source_location>
- C++ 庫 - <span>
- C++ 庫 - <spanstream>
- C++ 庫 - <stacktrace>
- C++ 庫 - <stop_token>
- C++ 庫 - <syncstream>
- C++ 庫 - <system_error>
- C++ 庫 - <string_view>
- C++ 庫 - <stdatomic>
- C++ 庫 - <variant>
- C++ STL 庫速查表
- C++ STL - 速查表
- C++ 程式設計資源
- C++ 程式設計教程
- C++ 有用資源
- C++ 討論
C++ 庫 - <cstring>
C++ 中的 <cstring> 標頭檔案提供了一組用於操作 C 風格字串(以 null 結尾的字元陣列)並在記憶體塊上執行操作的函式。C 風格字串是以 null 字元(\0)結尾的字元陣列,表示字串的結束。<cstring> 庫繼承自 C 程式語言,是 C++ 標準庫的一部分。
C 風格字串與 C++ 字串物件 (std::string) 不同,因為它們是低階的,並且依賴於原始記憶體操作。在效能方面,使用 C 風格字串可能比使用更高級別的 C++ 字串類更有效,因為它們允許直接控制記憶體。
<cstring> 庫提供了各種用於操作 C 風格字串的函式,例如複製、連線、比較和搜尋。這些函式將 C 風格字串視為字元陣列,並在到達 null 終止符之前執行操作。
包含 <cstring> 標頭檔案
要在 C++ 程式中包含 <cstring> 標頭檔案,可以使用以下語法。
#include <cstring>
<cstring> 標頭檔案的函式
以下是 <cstring> 標頭檔案中所有函式的列表。
複製
這些函式用於操作和複製 C 風格字串或記憶體塊。每個函式都有其自己的用途,具體取決於是否使用以 null 結尾的字串或原始記憶體塊。
常用的 C++ <cstring> 複製函式如下所示,以及它們的描述。
序號 | 函式及描述 |
---|---|
1 | memcpy
用於將一個緩衝區複製到另一個緩衝區。 |
2 | memmove
用於將一個緩衝區移動到另一個緩衝區。 |
3 | strcpy
用於將一個字串複製到另一個字串。 |
4 | strncpy
用於將一個字串中一定數量的字元複製到另一個字串。 |
將一個字串複製到另一個字串
在下面的示例中,我們將一個字串複製到另一個字串。
#include <iostream> #include <cstring> int main() { char x[] = "Welcome"; char y[50]; strcpy(y, x); std::cout << "Result : " << y << std::endl; return 0; }
輸出
以上程式碼的輸出如下所示:
Result : Welcome
連線
它是將兩個或多個字串連線在一起形成單個字串的過程。常用的 C++ <cstring> 連線函式如下所示,以及它們的描述。
序號 | 函式及描述 |
---|---|
1 | strcat
用於連線兩個字串。 |
2 | strncat
用於連線兩個字串中一定數量的字元。 |
連線兩個字串
考慮以下示例,我們將連線兩個字串。
#include <iostream> #include <cstring> int main() { char a[12] = "123"; char b[] = "456"; strcat(a, b); std::cout << "Result: " << a << std::endl; return 0; }
輸出
以下是以上程式碼的輸出:
Result: 123456
比較
比較函式用於比較字串、確定它們的順序並檢查是否相等。常用的 C++ <cstring> 比較函式如下所示,以及它們的描述。
序號 | 函式及描述 |
---|---|
1 | memcmp
用於比較兩個緩衝區。 |
2 | strcmp
用於比較兩個字串。 |
3 | strcoll
根據當前區域設定比較兩個字串。 |
4 | strncmp
比較兩個字串中一定數量的字元。 |
5 | strxfrm
用於使用區域設定轉換字串。 |
比較兩個字串
讓我們看一下下面的示例,我們將比較兩個字串。
#include <iostream> #include <cstring> int main() { char a[] = "Hi"; char b[] = "Hello"; int x = strcmp(a, b); if (x < 0) { std::cout << a << " is less than " << b << std::endl; } else if (x > 0) { std::cout << a << " is greater than " << b << std::endl; } else { std::cout << a << " is equal to " << b << std::endl; } return 0; }
輸出
如果我們執行以上程式碼,它將生成以下輸出:
Hi is greater than Hello
搜尋
搜尋是指在資料集合中查詢特定專案的過程。常用的 C++ <cstring> 搜尋函式如下所示,以及它們的描述。
序號 | 函式及描述 |
---|---|
1 | memchr
在陣列中搜索字元的第一次出現。 |
2 | strchr
用於查詢字元的第一次出現。 |
3 | strcspn
返回最大初始段的長度,該段僅由在另一個位元組字串中找不到的字元組成。 |
4 | strpbrk
查詢一組分隔符中任何字元的第一個位置。 |
5 | strrchr
用於查詢字元的最後一次出現。 |
6 | strspn
返回最大初始段的長度,該段僅由在另一個位元組字串中找到的字元組成。 |
7 | strstr
用於查詢字元的最後一次出現。 |
查詢第一次出現
以下是示例,我們將查詢字串中字元 'L' 的第一次出現。
#include <iostream> #include <cstring> int main() { char x[] = "TUTORIALSPOINT"; char y = 'L'; char * z = strchr(x, y); if (z) { std::cout << "Result : " << (z - x) << std::endl; } else { std::cout << "Character Not Found." << std::endl; } return 0; }
輸出
以上程式碼的輸出如下所示:
Result : 7