日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

C語言中有哪些字符處理函數你知道嗎_C 語言

作者:我要出家當道士 ? 更新時間: 2022-05-16 編程語言

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、數字轉字符串?

#include 
int main(void)
{
	int num = 199;
	char str[20] = "";
	sprintf(str, "%d", num);
	// (199)
	printf("(%s)\n", str); 
	return 0;
} 

示例?

#include 
int 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

欄目分類
最近更新