sprintf() strcat() strcmp() 函式
sprintf()函式:
函式功能:把格式化的資料寫入某個字串
函式原型:int sprintf( char *buffer, const char *format [, argument] … );
返回值:字串長度(strlen)
char* who = "I";
char* whom = "CSDN";
sprintf(s, "%s love %s.", who, whom); //產生:"I love CSDN. " 這字串寫到s中
sprintf(s, "%10.3f", 3.1415626); //產生:" 3.142"
------------------------------------------------------------------------------------------------
strcat() 函式:
函式功能:用來連線字串
函式原型:char *strcat(char *dest, const char *src);
【引數】dest 為目的字串指標,src 為源字串指標。
strcat() 會將引數 src 字串複製到引數 dest 所指的字串尾部;dest 最後的結束字元 NULL 會被覆蓋掉,並在連線後的字串的尾部再增加一個 NULL。
注意:dest 與 src 所指的記憶體空間不能重疊,且 dest 要有足夠的空間來容納要複製的字串。
【返回值】返回dest 字串起始地址。
#include <stdio.h> #include <string.h> int main () { char str[80]; strcpy (str,"these "); strcat (str,"strings "); strcat (str,"are "); strcat (str,"concatenated."); puts (str); return 0; }
輸出結果:
these strings are concatenated.
----------------------------------------------------------------------------------------------
strcmp()函式:
函式功能:用來比較字串(區分大小寫)
函式原型:int strcmp(const char *s1, const char *s2);
【引數】s1, s2 為需要比較的兩個字串。
字串大小的比較是以ASCII 碼錶上的順序來決定,此順序亦為字元的值。strcmp()首先將s1 第一個字元值減去s2 第一個字元值,若差值為0 則再繼續比較下個字元,若差值不為0 則將差值返回。例如字串"Ac"和"ba"比較則會返回字元"A"(65)和'b'(98)的差值(-33)。
【返回值】若引數s1 和s2 字串相同則返回0。s1 若大於s2 則返回大於0 的值。s1 若小於s2 則返回小於0 的值。
注意:strcmp() 以二進位制的方式進行比較,不會考慮多位元組或寬位元組字元;如果考慮到本地化的需求,請使用
#include <string.h>
main(){
char *a = "aBcDeF";
char *b = "AbCdEf";
char *c = "aacdef";
char *d = "aBcDeF";
printf("strcmp(a, b) : %d\n", strcmp(a, b));
printf("strcmp(a, c) : %d\n", strcmp(a, c));
printf("strcmp(a, d) : %d\n", strcmp(a, d));
}
輸出結果:
strcmp(a, b) : 32
strcmp(a, c) :-31
strcmp(a, d) : 0