2010年4月13日 星期二

[C-Programming] 轉貼:字串取代函式 (str_replace)

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

/* str_replace [字串取代] 
* @param {char*} source 原始的文字 
* @param {char*} find 搜尋的文字   
* @param {char*} rep 替換的文字 
* */
char *str_replace(char *source, char *find,  char *rep) {
// 搜尋文字的長度
int find_L=strlen(find);
// 替換文字的長度
int rep_L=strlen(rep);
// 結果文字的長度
int length=strlen(source)+1;
// 定位偏移量
int gap=0;

// 建立結果文字,並複製文字
char *result = (char*)malloc(sizeof(char) * length);
strcpy(result, source);

// 尚未被取代的字串
char *former=source;
// 搜尋文字出現的起始位址指標
char *location= strstr(former, find);
// 漸進搜尋欲替換的文字  
while(location != NULL) {
    // 增加定位偏移量
    gap+=(location - former);
    // 將結束符號定在搜尋到的位址上  
    result[gap] = '\0';

    // 計算新的長度  
    length+=(rep_L-find_L);
    // 變更記憶體空間  
    result = (char*)realloc(result, length * sizeof(char));
    // 替換的文字串接在結果後面  
    strcat(result, rep);
    // 更新定位偏移量  
    gap+=rep_L;
    // 更新尚未被取代的字串的位址
    former=location+find_L;
    // 將尚未被取代的文字串接在結果後面  
    strcat(result, former);

    // 搜尋文字出現的起始位址指標
    location= strstr(former, find);
    }
return result;
}
轉貼自 Jax的工作紀錄-[C 語言] 字串取代(str_replace)一文

2010年4月12日 星期一

媽呀~ 聖坦也會泰坦之握了 =口=

某日,趁著小小的空檔,我用懲戒騎的天賦報名了一團25亞夏賞金團,

一進場我發覺我天賦是防護,於是趕緊轉換成懲戒,並以迅雷不及掩耳的速度換裝成輸出裝,

就在這個Moment!我突然覺得左手怪怪的,我眉頭一皺,發覺事情並不單純,

仔細一看發現‧‧‧


我左手怎麼還拿著盾牌,這不是我當坦克在用的盾牌嗎!?

而且我的右手還拿著雙手劍呢!天阿~原來我在轉換天賦過程中,

不知不覺就學會了戰士的泰坦之握,真是老天的恩賜阿~~~

我想老天大概是怕我老早掛點,才特意讓我裝備盾牌啊!!!

但是拿久了手似乎是有點酸 = =

下面再補上一張背著斧頭,還拿著盾的帥氣圖!

2009年12月1日 星期二

C語言編譯參數查詢方式

以 libcurl 為例:

libcurl的編譯參數設置參考指令: curl-config

‧需要哪些 flags 來編譯我的code?
curl-config --cflags

‧需要哪些參數options 來編譯我的code?
curl-config --libs

‧我的有SSL 支援嗎?
curl-config --feature | grep SSL

‧我的libcurl版本?
curl-config --version