========== 檔案相關 ==========
開啟檔案
FILE * fopen ( const char * filename, const char * mode );
fopen - C++ Reference
C 語言標準函數庫分類導覽 - stdio.h fopen()
關閉檔案
int fclose ( FILE * stream );
fclose - C++ Reference
C 語言標準函數庫分類導覽 - stdio.h fclose()
讀取資料
char * fgets ( char * str, int num, FILE * stream );
stdio.h 中的 fgets() 從檔案一行一行的讀取資料,共需三個參數,第一個參數為儲存輸入資料的陣列,第二個參數為該行最多幾個字元,第三個參數為指向結構 FILE 的指標。
fgets - C++ Reference
C 語言標準函數庫分類導覽 - stdio.h fgets()
========== 字串相關 ==========
搜尋函式:
const char * strchr ( const char * str, int character );
string.h 的函數 strchr() ,需要一個字串及一個字元當作參數,然後搜尋字元在字串中第一次出現的位置,回傳該位置的指標。
strchr - C++ Reference
C 語言標準函數庫分類導覽 - string.h strchr()
const char * strstr ( const char * str1, const char * str2 );
Parameters 1 是輸入字串,Parameters 2 是找尋字串,strstr 會先將頭一次比對成功的 pointer 回傳,也就是如果要找尋 appleboyappleboy 字串中的 boy,函式會回傳第一次比對成功的 boy pointer,而並非回傳最後一個比對到的。
strstr - C++ Reference
[C/C++] cstring (string.h) 搜尋函式:strstr, strchr
size_t strspn ( const char * str1, const char * str2 );
這有兩個解釋
1. 由字串開始,str1哪一個位置開始不包含str2裡面的字元,若第一個字元就不包含在str2裡面,當然就是回傳0(0 base)
2. strspn()會傳回兩個字串開始不匹配的第一個字元索引位置,否則傳回0
我覺得應該是1的這一個解釋比較正確,若有空可以來做一個實驗。
strspn - C++ Reference
C 語言標準函數庫分類導覽 - string.h strspn()
strspn()—返回从字符串开头连续包含特定字符的字符数目
切割函式
char * strtok ( char * str, const char * delimiters );
string.h 的函數 strtok() ,需要兩個字串參數,以第二個參數字串的內容切割第一個參數字串。
strtok - C++ Reference
C 語言標準函數庫分類導覽 - string.h strtok()
[C&C++] strtok
若一開始字串為
char buffer[] = "a string,of ,,tokens";
char *token = NULL;
char *line = NULL;
char *final = NULL;
原本記憶體內容為
a string,of ,,tokens
當執行完一次
token = strtok (buffer, " ,");
則記憶體內容為
a'\0'string,of ,,tokens
因此,若列印token的話,結果為a
再執行一次
line = strtok (NULL, " ,")
則記憶體內容為
a'\0'string'\0'of ,,tokens
因此,若列印line的話,結果為string
若這個時候,執行
final = strtok (NULL, "");
則記憶體內容不變,但,
列印final的話,結果為of ,,tokens
複製函數
char * strcpy ( char * destination, const char * source );
string.h 的函數strcpy() ,需要兩個字串當作參數,然後把第二個參數的字串複製到第一個參數的字串中,然後回傳第一個參數。
strcpy - C++ Reference
C 語言標準函數庫分類導覽 - string.h strcpy()
長度計算
size_t strlen ( const char * str );
strlen - C++ Reference
C 語言標準函數庫分類導覽 - string.h strlen()
字串比對
int strcmp (const char * str1, const char * str2 );
string.h 的函數strcmp() ,需要兩個字串當作參數,比較兩個字串是否相等,相等就回傳0,第一個字串大於第二個字串回傳正值,反之回傳負值。
strcmp - C++ Reference
C 語言標準函數庫分類導覽 - string.h strcmp()
int strcasecmp (const char * str1, const char * str2 ); // 非標準函式
strcasecmp()—判断字符串是否相等(忽略大小写)
判斷字元
int isspace (int c );
判斷此字元是否為空白
For the "C" locale, white-space characters are any of:
' ' (0x20) space (SPC)
'\t' (0x09) horizontal tab (TAB)
'\n' (0x0a) newline (LF)
'\v' (0x0b) vertical tab (VT)
'\f' (0x0c) feed (FF)
'\r' (0x0d) carriage return (CR)
isspace - C++ Reference
C 語言標準函數庫分類導覽 - ctype.h isspace()
int isalpha (int c );
Check if character is alphabetic (function )
int isdigit (int c );
Check if character is decimal digit (function )
2014年4月3日 星期四
C/C++ 字串分析函式
2014年4月2日 星期三
2014年4月1日 星期二
xshell軟體
之前遠端連到linux server都是使用putty或pietty(中文支援比較好)
最近又開始在玩linux了,
發現xshell這個新東西實在非常好用。
其中最好用的就是tab視窗,
尤其是我們常常一次就連很多個連線的人非常的需要。
參考資料如下:
[網路工具] Xshell 4 超好用的 SSH 連線工具 - 強力推薦
xshell & xftp
2014年3月27日 星期四
2014年3月20日 星期四
dump hex
在debug的時候,
有時候有一連串的資料需要看,
這個時候若一個變數一個變數處理,
會變的非常麻煩,
現在需要用到dump hex的指令,
而這個東西應該已經一堆人寫好了,
為了不要浪費時間,
直接去網路上找就可以了。
triple-column hex dump with ASCII representation
非常之好,
直接套用上去就可以啦~~
static in C code
這裡看到一個for static的解釋,
看起來還蠻清楚的,記錄一下。
Keyword Static (Function) [C++ 求生筆記]
不過,在C++中,static好像有特別的功能,
就是不需要宣告物件,
就可以直接透過類別來使用其static的函式。
設定TortoiseSVN比對時使用Beyond compare
訂閱:
文章 (Atom)