c語言中的strcat函數(shù)使用 我本意是想將結(jié)果有錯(cuò)誤的城市名稱及反回錯(cuò)誤代碼在運(yùn)行結(jié)束后顯示出來,這樣就省去在日志中查看理事的步驟了。 一開始是想建一個(gè)數(shù)組,二維的,就像a(n,m),a(n1,m1)存的就是一對(duì)出錯(cuò)的城市及錯(cuò)誤代碼,沒有實(shí)現(xiàn)。 后來又想了現(xiàn)在的辦法,就是根據(jù)錯(cuò)誤類型歸納城市,就是把一類錯(cuò)誤的城市放在一個(gè)變量里,用空格隔開,這個(gè)想法我實(shí)現(xiàn)了。 用switch語句對(duì)錯(cuò)誤類型進(jìn)行判斷,然后再用C語言的strcat函數(shù)來拼接字符。 char str_1[200]; char *tmp; switch(type_code) { case -1 tmp=lr_eval_string(("{City}")); strcat(str_1," ");//這個(gè)是增加城市與城市名稱之前的空格,不好的地方是當(dāng)?shù)谝淮芜\(yùn)行時(shí)第一個(gè)城市名稱之前就有空格,其實(shí)這里還可以改進(jìn)就是判斷錯(cuò)誤數(shù)為1時(shí),可以不加空格這一句 strcat(str_1,tmp);//拼接完成空格再拼接上下一個(gè)城市名稱。 }
注意的是tmp必須用指針類型的,不然會(huì)提示類型指向錯(cuò)誤。 這個(gè)代碼不足的地方 1、str_1[200]的定義,其實(shí)這里定義成動(dòng)態(tài)的更好,不論存多少個(gè)城市名稱都不會(huì)溢出 2、還需要弄懂的地方就是為什么在定義tmp是必須定義成指針類型的。 解釋:strcat函數(shù)的原型可以解釋這個(gè)問題:原型:extern char *strcat(char *dest,char *src);原型中需要的拼接的參數(shù)是指針型的,哈哈。。。 3、這里的case就寫了五個(gè)重點(diǎn)關(guān)注的,其它的類型還很多,都?xì)w納到default里了,但是遇到這種情況時(shí),只記錄了城市名稱,沒有記錄什么類型,需查改進(jìn)成記錄錯(cuò)誤類型及城市名稱。
strcat函數(shù) 原型:extern char *strcat(char *dest,char *src); 用法:#include <string.h> 功能:把src所指內(nèi)存區(qū)域不可能重疊且dest必須有足夠的空間來形容src字符串。返回指向dwst的指針。 舉例: //strcat.c #include <syslib.h> #include <string.h> main() { char d[20]="Golden Global"; char *s=" Vies"; clrscr(); strcat(d,s); printf("%s",d); getchar(); return 0; } //printf的結(jié)果是:Golden Global Vies
strncat函數(shù) 這個(gè)函數(shù)是指定被拼接的前幾個(gè)字符拼接到前面的字符,呵呵,這是在查詢字符串拼接是先查到的一個(gè)函數(shù)。 原型:extern char *strncat(char *dest,char *src,int n0; 用法:#include<string.h> 功能:把src所指字符串的前n個(gè)字符添加到dest結(jié)尾處(覆蓋dest結(jié)尾處的'\0')并添加'\0'. 說明:src和dest所指內(nèi)存區(qū)域不可以重疊且dest必須有足夠的空間來容納src的字符串。返回指向dwst的指針。 舉例: //strncat.c #include <syslib.h> #include <string.h> main(); { char d[20]="Golden Global"; char *s=" View WinIDE Library"; clrscr(); strncat(d,s,5); printf("%s",d); getchar(); return 0; } //printf的結(jié)果是:Golden Global View
|