[C] 每天來點字串用法 (6) - atoi、atol、atof

嗯我居然忘了把這篇搬過來。(2021) 今天要介紹很好用的函式: atoi、atol:字串轉整數所屬標頭檔:<stdlib.h> 函式宣告: int atoi( const char *str ); long atol( const char *str ); 首先要注意到:這次的標頭檔並不是我們熟悉的 <string.h>,而是 <stdlib.h>。 這兩是個可以把字串中的有效部分轉換成整數、長整數的函式,而怎麼樣算有效呢?基本上要符合以下條件: 可能有正負號(+ / -) 數字 如果這個字串的開頭有一些空格的話,這兩個函式會自動跳過;而如果在有效部分後面還有一些文字的話(例如小數點)...

[C] 每天來點字串用法 (5) - strcat、strncat

好的,不知道又過了幾天(廢),終於要來到第 5 篇了。 strcat、strncat:串接字串所屬標頭檔:<string.h> 函式宣告: char *strcat( char *dest, const char *src ); char *strncat( char *dest, const char *src, size_t count ); 看到這熟悉的命名,該不會跟 strcpy()、strncpy() 那組函式很像吧?沒錯,所以按照上次的慣例,我們先來看看 strcat()。 strcat() 有兩個參數,分別是 dest 和 src,而這個函式的功用是將 src 接到 des...

[C] 每天來點字串用法 (4) - strchr、strrchr、strstr

就直接進入正題吧,今天要講的是: 字串搜尋strchr、strrchr:字串中搜尋字元所屬標頭檔:<string.h> 函式宣告: char *strchr( const char *str, int ch ); char *strrchr( const char *str, int ch ); 先傳入一個字串 str,再傳入一個字元 ch(雖然宣告裡它的型態是 int,但 char 本來就是用 ASCII 碼存的,所以傳入後會被當成整數來使用),如果有在 str 裡找到 ch,回傳第一個 ch 的所在位址;如果找不到,回傳 NULL。 而這兩個函式的差別在於:strchr() 是從前面...

[C/C++] 每天來點字串用法 (3) - const char* to char*

這次沒有拖到欸d(`・∀・)b(然而三年後拖到了) 今天帶來的不是函式,而是一個小技巧: 由 const char* 轉成 char*有時候可能在將字串傳入函式時,會出現以下錯誤: error: invalid conversion from 'const char*' to 'char*' note: expected 'char *' but argument is of type 'const char *' 這是因為 const char* 沒辦法自動轉換成 char*,那麼基本上是沒救了啦,不過有一些方法可以繞過編譯器檢查或達到與轉換型別相同的效果: 直接修改函式參數的型態定義...

[C] 每天來點字串用法 (2) - strcpy、strncpy

結果隔了四天才更新 qwq,前幾天根本忘得一乾二淨 XD(同時適用於三年前及現在) 進入正文吧,今天要介紹的是: strcpy、strncpy:字串複製所屬標頭檔:<string.h> 函式宣告: char *strcpy( char *dest, const char *src ); char *strncpy( char *dest, const char *src, size_t count ); 先說 strcpy(),將來源字串(src)複製到目的地(dest),並回傳 dest 指向的字串,要注意的有以下兩點: 第一個參數是目的地(dest),第二個是來源(src) 會有緩衝...

[C] 每天來點字串用法 (1) - strlen

第一天就來個比較簡單又實用的函式好了,不然我怕我堅持不下去(誤)。 strlen:字串長度所屬標頭檔:<string.h> 函式宣告: size_t strlen( const char *str ); 傳入一個字串 str,回傳這個字串的長度,而 \0 不計入長度(但 \n 計入)。其中的回傳值型態 size_t 通常是無號整數型別。 以下這個程式示範了 strlen() 的用法: #include <stdio.h> int main(){ char s1[16], s2[16]; char *s3 = s2; char s4[] = "happy new year\n"; scan...

[C] 每天來點字串用法(基本篇)

有感於 C 的字元陣列實在有夠難(只是你廢),所以決定每天搞懂一點關於它的性質或用法之類的,希望我能夠持之以恆。(2018 的我) 不,你不行。(2021 的我) 字串的基本使用首先,C 的字串指的其實是字元陣列,而字元陣列的使用通常有以下幾種: char s1[128] = "hello world"; char s2[] = "hello world"; 另外,許多函式都會使用字元指標來操作字串: char *s3 = s1; // 相當於 char *s3 = &s1[0] 而對於字元指標的宣告,C 有一個特別的地方,他可以直接讓字元指標類的字串有初始值: char *s4 = "...