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)
posted @ 2016-08-01 00:15  52php  阅读(8681)  评论(1编辑  收藏  举报