1. strcpy: --拷贝
包含库:
#include <string.h>
函数原型:
char *strcpy(char *dest, const char *src);
--将src指向的字符串拷贝到dest指向的空间,拷贝过程中包括拷贝src中的‘\0’ --向前拷
char *strncpy(char *dest, const char *src, size_t n);
--将src指向的n个字节的字符拷贝到dest指向的空间,拷贝过程中不特意添加‘\0’
参数:
dest,目的
src,源
n,源中的n各字节
返回值:
目的字符串 dest 的指针
例子:
一个简单的strcpy的实现:
char * strncpy(char *dest, const char *src, size_t n)
{
size_t i;
for (i = 0; i < n && src[i] != '\0'; i++)
dest[i] = src[i];
for ( ; i < n; i++)
dest[i] = '\0';
return dest;
}
对于 strncpy 当前n个字符中没有\0字符串结束符的解决办法是
strncpy(buf, str, n);
if (n > 0)
buf[n - 1]= '\0';
注意:目标数组的大小一定要足够大,否则,内存出现问题。
2. strcat: --连接
包含的库:
#include <string.h>
函数原型:
char *strcat(char *dest, const char *src);
--将src链接到dest后边,结果是 dest+src 。连接方式是
从覆盖dest所指向字符串后边的 '\0' 开始。
char *strncat(char *dest, const char *src, size_t n);
--dest + 至多n个src里边的字符串,特殊情况是
当src里边有n个或者多于n个,则src不必一定要以 '\0' 结尾。
参数:
dest,...
src,...
n,src里边至多的个数
返回值:
目的字符串 dest 的指针
例子:
一个简单的strncat的实现:
char * strncat(char *dest, const char *src, size_t n)
{
size_t dest_len = strlen(dest);
size_t i;
for (i = 0 ; i < n && src[i] != '\0' ; i++)
dest[dest_len + i] = src[i];
dest[dest_len + i] = '\0';
return dest;
}
3. strcmp: --比较
包含的库:
#include <string.h>
函数原型:
int strcmp(const char *s1, const char *s2);
--相当于 *s1-*s2 ,所有字符都比较
int strncmp(const char *s1, const char *s2, size_t n);
--相当于 *s1-*s2 ,前n个字符比较
参数:
s1,字符串1
s2,字符串2
n,(至多)要比较的个数
返回值:
>0,s1指向的字符串比s2指向的字符串大
=0,两个指针指向的字符串完全相同
<0,s1指向的字符串比s2指向的字符串小