一面的時候,面試官叫在紙上寫這個函式,用紙寫真心疼,原理其實很簡單的。
例如:%20其實就是對應的ascii 32的字元(空格)吧。
面試的時候我只寫了一半出來,太耗時了,現在回來用電腦寫了下。
這種解析字串的函式,我們都可以畫乙個狀態轉換的圖,就是編譯原理裡面的那個圖。
由於這個函式比較簡單,我就只畫乙個流程圖就可以了。
圖是在ubuntu下用libreoffice套件中的draw畫的,真心疼,太不方便了。用dia也不方便。還是visio好。
流程圖有了,接下來就是函式**段了。
1/*2當然真正的url解碼的函式不只是解析這個%xx的,我只是簡單的寫乙個解析%xx的函式而已。* main.c3*
4* created on: 2012-4-23
5* author: huangjacky6*/
78 #include 9 #include
10 #include 11
12#define null null;
1314
int hexchar2int(char
);15
16/**17
* 對src進行url解碼
18*param src char* urlencode後的字串形式
19*return null: 字串src的形式不對,否則 解析成功後的字串
20*/
21char* urldecode(char *src)
42 *dst1++ =(char)( (len << 4) + count);//
儲存到目的字串
43 }else
47 src++;48}
49if (!flag)
53 *dst1 = 0;//
字串的末尾加上\0
54return
dst;55}
56/**57
*將hex字元轉換成對應的整數
58*return 0~15:轉換成功,-1:表示c 不是 hexchar
59*/
60int hexchar2int(char
c)70
71int
main()
79 printf("
now s is : %s
",s);
80return0;
81 }
我是huangjacky,技術交流為主。
C urldecode函式編寫
一面的時候,面試官叫在紙上寫這個函式,用紙寫真心疼,原理其實很簡單的。例如 20其實就是對應的ascii 32的字元 空格 吧。面試的時候我只寫了一半出來,太耗時了,現在回來用電腦寫了下。這種解析字串的函式,我們都可以畫乙個狀態轉換的圖,就是編譯原理裡面的那個圖。由於這個函式比較簡單,我就只畫乙個流...
編寫strcpy 函式
已知 strcpy 函式的原型是 char strcpy char strdest,const char strsrc 其中 strdest 是目的字串,strsrc 是源字串。1 不呼叫c c 的字串庫函式,請編寫函式 strcpy char strcpy char strdest,const c...
oracle函式編寫
語法格式 sql語法方式建立的語法格式為 orreplace function function name 函式名稱 引數定義部分 return return datatype 定義返回值型別 as begin function body 函式體部分 return scalar expression...