我要进行一个判断,比如,char zjhm[20];这个字符数组中存放不定长度的字符串。strpack(zjhm);/*去空格*/if( strlen(zjhm)!=15 )
3 回答
九州编程
TA贡献1785条经验 获得超4个赞
strlen(char*)函数求的是字符串的实际长度,它求得方法是从开始到遇到第一个'\0',如果你只定义没有给它赋初值,这个结果是不定的,它会从aa首地址一直找下去,直到遇到'\0'停止。
char aa[10];cout<<strlen(aa)<<endl; //结果是不定的
char aa[10]={'\0'}; cout<<strlen(aa)<<endl; //结果为0
char aa[10]="jun"; cout<<strlen(aa)<<endl; //结果为3
慕尼黑的夜晚无繁华
TA贡献1864条经验 获得超6个赞
strpack函数没见过,请问是怎么去空格呢?
strlen是返回字符串长度,实际上是从第一个开始往后看,直到遇到字符串终结符 '\0'为止的长度
如果你要判断zjhm是不是15位, 这个函数是最好不过了
ITMISS
TA贡献1871条经验 获得超8个赞
我不知道你说的15位的意思,这里有2种意思
一是字符串的长度,二是数组里面存放的个数;
二者是不同的,例如 字符数组 char a[20]="abc" 那么a的长度即strlen(a)就是3;而数组里面存的字符实际上是"abc\0"是4个字符;因此char a[3]="abc"; 是错的
- 3 回答
- 0 关注
- 87 浏览
添加回答
举报
0/150
提交
取消