C-Style字串操作(字元陣列)

1、字串是一個字元陣列,最後以空字元’\0’作結尾,可以使用strlen(),來得知字串所含字元長度(不包括空字元)。
2、如果要進行字串複製,可以使用strcpy()函式,strncpy()可以指定要複製幾個字串數目。
3、若要串接兩個字串,則要使用strcat(),若要串接部份字串,則可以使用strncat()。
4、strcmp(str1, str2)會比較字串str1與str2的大小,若相同就傳回0,str1大於str2則傳回大於0的值,小於則傳回小於0的值。
5、strstr()第一個參數是被搜尋字串,第二個參數是想要搜尋的子字串,如果沒找到子字串則傳回NULL,如果搜尋到第一個符合的子字串,則傳回符合位置的指標,可以用該指標減去字串開頭的指標,位移量即搜尋結果的索引位置。
6、strcspn()函式找出一個字串,與另一個字串任何字元第一次匹配的索引位置,若無則傳回字串長度。

#include < cstring >

int main(void) {
    char src[10] = "hello"; 
    char dst[20] = {'\0'}; 
    int length = strlen(src);        //length=5
    strcpy(dst, src);                //dst="hello"
    strcat(dst, src);                //dst="hellohello"
    int outcome = strcmp(dst, src);  //outcome=1
    const char *objChar = strstr(dst, "o");
    int pos = objChar - dst;         //pos=4
    int pos2 = strcspn(dst, "o");    //pos2=4
    return 0;
}

若要將字串轉換為數字,可以使用atoi()、atol()、atof()函式,分別將字串轉換為int、long與double。

int atoi(const char*);
int atol(const char*);
double atof(const char*);

可以測試單一字元是否為數字、字母、大寫、小寫等等,例如:
isalnum(int c):是否為字母或數字
isalpha(int c):是否為字母
isdigit(int c):是否為數字
islower(int c):是否為小寫字母
ispunct(int c):是否為標點符號
isspace(int c):是否為空白
isupper(int c):是否為大寫字母
也可以用tolower()、toupper()等函式進行字母大小寫轉換。