C语言中字符串通常用字符指针和字符数组来定义:
char* pS="abcdef"; char s[]="abcdef";
这两种方式都会在结尾为字符串隐式补结束符‘\0‘
使得
strlen(pS); strlen(s); //均为6,未计算带‘\0‘的长度,拷贝字符串时,真实容量应+1;
若使用sizeof可以看到
sizeof(s)/sizeof(char);//这个值为7
所以在使用strncpy时切记strlen+1;
另,printf和strcpy等均以‘\0‘为结束标志,若以字符数组方式建立字符串时要记得加‘\0‘;
最好能在创建字符数组时用memset初始化为0x00;
时间: 2025-01-02 13:34:44