strlen(返回字符串長度) | |
表頭文件 |
#include <string.h> |
定義函數 |
size_t strlen(const char *s); |
函數說明 |
strlen()用來計算指定的字符串s的長度,不包括結束字符"\0"。 |
返回值 |
返回字符串s的字符數。 |
范例 |
#include <stdio.h> #include <string.h> int main(int argc, char **argv) { char *str = "12345678"; printf("str length = %d\n", strlen(str)); return 0; } |
執行 |
str length = 8 |
strcat(連接兩字符串) | |
表頭文件 |
#include <string.h> |
定義函數 |
char *strcat (char *dest,const char *src); |
返回值 |
返回參數dest的字符串起始地址 |
范例 |
#include <stdio.h> #include <string.h> int main(int argc, char **argv) { char a[30] = "string(1)"; char b[] = "string(2)"; printf("before strcat() : %s\n", a); printf("after strcat() : %s\n", strcat(a, b)); return 0; } |
執行 |
before strcat() : string(1) after strcat() : string(1)string(2) |
strncat(連接兩字符串) | |
表頭文件 |
#inclue <string.h> |
定義函數 |
char * strncat(char *dest, const char *src, size_t n); |
函數說明 |
strncat()會將參數src字符串拷貝n個字符到參數dest所指的字符串尾。第一個參數dest要有足夠的空間來容納要拷貝的字符串。 |
返回值 |
返回參數dest的字符串起始地址。 |
范例 |
#include <stdio.h> #include <string.h> int main(int argc, char **argv) { char a[30] = "string(1)"; char b[] = "string(2)"; printf("before strnact() :%s\n", a); printf("after strncat() :%s\n", strncat(a, b, 6)); return 0; } |
執行 |
before strnact() :string(1) after strncat() :string(1)string |
strcmp(比較字符串) | |
表頭文件 |
#include <string.h> |
定義函數 |
int strcmp(const char *s1, const char *s2); |
函數說明 |
strcmp()用來比較參數s1和s2字符串。字符串大小的比較是以ASCII 碼表上的順序來決定,此順序亦為字符的值。strcmp()首先將s1第一個字符值減去s2第一個字符值,若差值為0則再繼續比較下個字符,若差值不為0則將差值返回。例如字符串"Ac"和"ba"比較則會返回字符"A"(65)和'b'(98)的差值(-33)。 |
返回值 |
若參數s1和s2字符串相同則返回0。s1若大於s2則返回大於0的值。s1若小於s2則返回小於0 的值。 |
范例 |
#include <stdio.h> #include <string.h> int main(int argc, char **argv) { 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)); return 0; } |
執行 |
strcmp(a,b) : 32 strcmp(a,c) : -31 strcmp(a,d) : 0 |
strcpy(拷貝字符串) | |
表頭文件 |
#include <string.h> |
定義函數 |
char *strcpy(char *dest, const char *src); |
函數說明 |
strcpy()會將參數src字符串拷貝至參數dest所指的地址。 |
返回值 |
返回參數dest的字符串起始地址。 |
附加說明 |
如果參數dest所指的內存空間不夠大,可能會造成緩沖溢出(buffer Overflow)的錯誤情況,在編寫程序時請特別留意,或者用 strncpy() 來取代。 |
范例 |
#include <stdio.h> #include <string.h> int main(int argc, char **argv) { char a[30] = "string(1)"; char b[] = "string(2)"; printf("before strcpy() :%s\n", a); printf("after strcpy() :%s\n", strcpy(a, b)); return 0; } |
執行 |
before strcpy() :string(1) after strcpy() :string(2) |