Linux C 字符串函數 strlen()、strcat()、strncat()、strcmp()、strncmp()、strcpy()、strncpy() 詳解


  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)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM