linux下的strcmp()、strcpy()、strncat()函数
一、strcmp()函数
函数作用:
strcmp函数是比较两个字符串的大小,返回比较的结果。
一般用来判断两个字符串是否相同
函数形式:
i=strcmp(字符串,字符串);
其中,字符串1、字符串2均可为字符串常量或变量;i 是用于存放比较结果的整型变量。
比较结果:
①字符串1小于字符串2,strcmp函数返回一个负值;
②字符串1等于字符串2,strcmp函数返回零;
③字符串1大于字符串2,strcmp函数返回一个正值
二、strcpy()函数
函数功能:
strcpy函数用于实现两个字符串的拷贝。
函数形式:
char* strcpy(char* destination,const char* source);
函数的参数:
char* destination---------目标字符串的首地址 const char*
source------源地址:被复制的字符串的首地址,用const修饰,避免修改掉被拷贝的字符串
函数的返回值类型:
char*:返回的是目标字符串的首地址
注意事项:
strcpy()不会考虑拷贝字符串的大小,有可能造成越界问题,故可以使用strncpy()函数设置拷贝文件的大小,防止越界。
三、strlen()函数
函数功能:
strlen()用来计算指定的字符串s的长度,不包括结束字符"\0"。
函数形式:
#include <string.h>
size_t strlen(const char *s);
返回值:
返回字符串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()函数
函数功能:
连接两字符串
函数形式:
#include <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
只copy了b数组的前六个字符