str函数对象一定是能构成字符串的数组——至少保留最后一位是'\0'
例如strlen:
#include<stdio.h>
#include<string.h>
int main()
{
char b[4]="wnm";
/*这是正常情况,如果定义数组长度为3,会出现这个提示——[Error] initializer-string for array of chars is too long [-fpermissive]*/
int a;
a=strlen(b);
printf("%d",a);
return 0;
}
之前用到strcpy(b,a)//b是空字符数组,a是已经处理好的字符数组
尽管数组长度够用,但是没有任何初始化操作,数组完全是“空数组”,就没有‘\0’,所以没有被当做正常“字符串”处理