網站首頁 編程語言 正文
1、字符串常用操作:連接、拷貝、比較 與 獲取長度
include/* 將字符串 str2 連接到 str1 的末端,并返回指針 str1 */ char *strcat( char *str1, const char *str2 ) /* 將字符串 str2 中至多count個字符連接到字符串 str1 中,并追加空值結束符。 返回處理完成的字符串。 */ char *strncat( char *str1, const char *str2, size_t count ); /* 返回一個指向 str 中 ch 首次出現的位置指針, 當沒有在 str 中找到 ch 則返回NULL。 */ char *strchr( const char *str, int ch ) /* 函數返回一個指針,它指向字符 ch 在字符串 str 末次出現的位置, 如果匹配失敗,返回 NULL。 */ char *strrchr( const char *str, int ch ); /* 比較字符串 str1 與 str2。如果兩個字符串相等則返回 0; 該函數的將兩個字符串按位進行比較(字符的Ascall值), 當遇到不相等位時返回結果。 */ int strcmp( const char *str1, const char *str2 ) /* 比較字符串 str1 和 str2 中至多 count 個字符。 */ int strncmp( const char *str1, const char *str2, size_t count ); /* 將字符串 src 中所有字符賦值到字符串 dst,包括空值結束符。 返回值為指針dst。 */ char *strcpy( char *dst, const char *src) /* 將字符串 src 中至多 count 個字符復制到字符串 dst 中。 如果字符串 src 的長度小于count,其余部分用 '\0' 填補。 返回處理完成的字符串。 */ char *strncpy( char *dst, const char *src, size_t count ); /* 函數返回字符串 str 的長度( 即空值結束符之前字符數目)。 */ size_t strlen( char *str )
2、mem_類的函數(查找、比較、拷貝 與 賦值)
mem_類的函數與str_的函數使用起來的最大區別在于,mem_類函數不限制數據類型,直接在內存上進行操作,使用起來更強大與靈活。
#include/* 函數在 buffer 指向的數組的 count 個字符的字符串里查找ch 首次出現的位置。 返回一個指針,指向 ch 在字符串中首次出現的位置, 如果ch 沒有在字符串中找到,返回 NULL。 */ void *memchr( const void *buffer, int ch, size_t count ); /* 函數比較 buffer1 和 buffer2 的前 count 個字符。 */ int memcmp( const void *buffer1, const void *buffer2, size_t count ); /* 函數從from中復制count 個字符到to中,并返回to指針。 如果 src和 dst 指向的內存空間有重疊,函數行為不確定。 */ void *memcpy( void *dst, const void *src, size_t count ); /* 函數拷貝 ch 到 buffer 從頭開始的 count 個字符里, 并返回buffer指針。 memset() 可以應用在將一段內存初始化為某個值。 */ void *memset( void *buffer, int ch, size_t count );
3、尋找字符串子串
/* 函數返回一個指針,它指向字符串 str2 首次出現于字符串 str1 中的位置, 如果沒有找到,返回 NULL。 */ char *strstr( const char *str1, const char *str2 )
示例
#include#include int main(void) { char strA[20] = "hello world!", strB[20] = "world"; char *tmp = strstr(strA, strB); // (world!) printf("(%s)\n", tmp); return 0; }
4、字符串轉數字
#include/* 將字符串 str 表示浮點數(帶符號)轉換為 double 類型, end 指針如果不為空則用于接收 str 去掉浮點數字符串后剩下的字符串。 */ double strtod( const char *str, char **end ) /* 字符串轉長整形,base代表采用的進制 如果返回值無法用長整型表示,函數則返回LONG_MAX或LONG_MIN. 錯誤發生時,返回零。 */ long strtol( const char *str, char **end, int base ) /* 字符串轉無符號長整形數 */ unsigned long strtoul( const char *str, char **end, int base ) /* 將字符串str轉換成一個雙精度數值并返回結果。 參數str 必須以有效數字開頭 允許以“E”或“e”除外的任意非數字字符結尾。 */ double atof( const char *str ) /* 將字符串str轉換成一個整數并返回結果。 參數str 以數字開頭, 當函數從str 中讀到非數字字符則結束轉換并將結果返回。 */ double atoi( const char *str ) /* 將字符串轉換成長整型數并返回結果。 函數會掃描參數str字符串,跳過前面的空格字符,直到遇上數字或正負符號才開始做轉換, 而再遇到非數字或字符串結束時才結束轉換,并將結果返回。 */ double atol( const char *str )
5、數字轉字符串?
#includeint main(void) { int num = 199; char str[20] = ""; sprintf(str, "%d", num); // (199) printf("(%s)\n", str); return 0; }
示例?
#includeint main(void) { int num = 199; char str[20] = ""; sprintf(str, "%d", num); // (199) printf("(%s)\n", str); return 0; }
6、分隔符分割字符串
char *strtok( char *str1, const char *str2 )
示例?
#include#include int main(void) { char str[20] = "ABC|EDF|GH"; char tmp[] = "|", *res = NULL; res = strtok(str, tmp); // (ABC) (EDF) (GH) while(res != NULL) { printf("(%s) ", res); res = strtok(NULL, tmp); } return 0; }
7、大小寫字母判別與轉換
#include// 是否是數字字符 int isdigit( int ch ) // 是否是字母字符 int isalpha( int ch ) // 是否是小寫字母 int islower( int ch ) // 轉小寫字母 int tolower( int ch ) // 是否是大寫字母 int isupper( int ch ); // 轉大寫字母 int toupper( int ch )
總結
原文鏈接:https://blog.csdn.net/qq_37437983/article/details/123460797
相關推薦
- 2022-05-24 C#多線程TPL模式高級用法探秘_C#教程
- 2022-02-24 Android基礎之隱藏標題欄/設置為全屏/橫豎屏切換_Android
- 2022-02-17 Error: Network Error
- 2021-12-06 Android?CameraX?打開攝像頭預覽功能_Android
- 2022-08-30 詳解Oracle控制文件及日志文件的管理問題_oracle
- 2022-12-06 Python基礎面向對象之繼承與派生詳解_python
- 2023-02-09 Rust?所有權機制原理深入剖析_Rust語言
- 2022-09-25 Linux基礎組件之基于循環數組的無鎖隊列
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支