1.strcpy()字符数组拷贝函数。
#include <stdio.h>
#include <string.h>
void main()
{
char ar[10] = {1,2,3,4,5,6,7,8,9};
const int n=sizeof(ar) /sizeof(ar[0]);
char ar1[n] ;
strcpy(ar1,ar);
}
它的拷贝以‘\0’做结束。‘\0’后面的内容不能被拷贝进另一个字符数组。
strcpy不需要指定长度,它遇到被复制字符的串结束符"\0"才结束,所以容易溢出。
2. strlen()字符数组长度计算函数。一‘\0’作为结束。#include <stdio.h>
#include <string.h>
void main()
{
char ar[10] = {1,2,3,4,'\0',6,7,8,9,10};
const int n=sizeof(ar) / sizeof(ar[0]);
char ar1[n] ;
strcpy(ar1,ar);
int a=strlen(ar);
}
程序运行后,a的值为4,而不是整个10.
3.strncpy():是 C语言的库函数之一,来自 C语言标准库,定义于 string.h,char *strncpy(char *dest, const char *src, int n),把src所指向的字符串中以src地址开始的前n个字节复制到dest所指的数组中,并返回dest。
4.strcmp();是比较两个字符串数组是否相同:
#include <stdio.h>
#include <string.h>
void main()
{
char ar[10] = {1,2,3,4,'\0',6,7,8,9,10};
//const int n=sizeof(ar) / sizeof(ar[0]);
char ar1[8] ;
strcpy(ar1,ar);
int a=strlen(ar);
bool b=strcmp(ar,ar1);
}
5.memcpy()字符串数组拷贝函数;
memcpy则是根据其第3个参数决定复制的长度。
#include <string.h>
void main()
{
char ar[10] = {1,2,3,4,'\0',6,7,8,9,10};
//const int n=sizeof(ar) / sizeof(ar[0]);
char ar1[8] ;
strcpy(ar1,ar);
int a=strlen(ar);
int b=strcmp(ar,ar1);
char ar2[8];
memcpy(ar2,ar,7);
}