標準庫
C 標準庫
C 標準庫操作字符數組 char[]/const char*。
printf("%s", s):用%s來輸出一個字符串(字符數組)。scanf("%s", &s):用%s來讀入一個字符串(字符數組)。sscanf(const char *__source, const char *__format, ...):從字符串__source裏讀取變量,比如sscanf(str,"%d",&a)。sprintf(char *__stream, const char *__format, ...):將__format字符串裏的內容輸出到__stream中,比如sprintf(str,"%d",i)。strlen(const char *str):返回從str[0]開始直到'\0'的字符數。注意,未開啓 O2 優化時,該操作寫在循環條件中複雜度是 \(\Theta(N)\) 的。strcmp(const char *str1, const char *str2):按照字典序比較str1 str2若str1字典序小返回負值,兩者一樣返回0,str1字典序更大則返回正值。請注意,不要簡單的認為返回值只有0、1、-1三種,在不同平台下的返回值都遵循正負,但並非都是0、1、-1。strcpy(char *str, const char *src): 把src中的字符複製到str中,strsrc均為字符數組頭指針,返回值為str包含空終止符號'\0'。strncpy(char *str, const char *src, int cnt):複製至多cnt個字符到str中,若src終止而數量未達cnt則寫入空字符到str直至寫入總共cnt個字符。strcat(char *str1, const char *str2): 將str2接到str1的結尾,用*str2替換str1末尾的'\0'返回str1。strstr(char *str1, const char *str2):若str2是str1的子串,則返回str2在str1的首次出現的地址;如果str2不是str1的子串,則返回NULL。strchr(const char *str, int c):找到在字符串str中第一次出現字符c的位置,並返回這個位置的地址。如果未找到該字符則返回NULL。strrchr(const char *str, char c):找到在字符串str中最後一次出現字符c的位置,並返回這個位置的地址。如果未找到該字符則返回NULL。
C++ 標準庫
C++ 標準庫操作字符串對象 std::string,同時也提供對字符數組的兼容。
參見:std::basic_string、std::basic_string_view
- 重載了賦值運算符
+,當+兩邊是string/char/char[]/const char*類型時,可以將這兩個變量連接,返回連接後的字符串(string)。 - 賦值運算符
=右側可以是const string/string/const char*/char*。 - 訪問運算符
[cur]返回cur位置的引用。 - 訪問函數
data()/c_str()返回一個const char*指針,內容與該string相同。 - 容量函數
size()返回字符串字符個數。 find(ch, start = 0)查找並返回從start開始的字符ch的位置;rfind(ch)從末尾開始,查找並返回第一個找到的字符ch的位置(皆從0開始)(如果查找不到,返回-1)。substr(start, len)可以從字符串的start(從0開始)截取一個長度為len的字符串(缺省len時代碼截取到字符串末尾)。append(s)將s添加到字符串末尾。append(s, pos, n)將字符串s中,從pos開始的n個字符連接到當前字符串結尾。replace(pos, n, s)刪除從pos開始的n個字符,然後在pos處插入串s。erase(pos, n)刪除從pos開始的n個字符。insert(pos, s)在pos位置插入字符串s。std::string重載了比較邏輯運算符,複雜度是 \(\Theta(N)\) 的。
本页面最近更新:,更新历史
发现错误?想一起完善? 在 GitHub 上编辑此页!
本页面贡献者:Frankaiyou, henrytbtrue, zymooll
本页面的全部内容在 CC BY-SA 4.0 和 SATA 协议之条款下提供,附加条款亦可能应用