为了账号安全,请及时绑定邮箱和手机立即绑定

我想问的是这个if,我想判断zjhm不为15位的。这里不能这样判断吗?应该怎么判断。

我想问的是这个if,我想判断zjhm不为15位的。这里不能这样判断吗?应该怎么判断。

C PHP
富国沪深 2023-03-15 16:12:17
我要进行一个判断,比如,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

查看完整回答
反对 回复 2023-03-18
?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

strpack函数没见过,请问是怎么去空格呢?
strlen是返回字符串长度,实际上是从第一个开始往后看,直到遇到字符串终结符 '\0'为止的长度
如果你要判断zjhm是不是15位, 这个函数是最好不过了

查看完整回答
反对 回复 2023-03-18
?
ITMISS

TA贡献1871条经验 获得超8个赞

我不知道你说的15位的意思,这里有2种意思
一是字符串的长度,二是数组里面存放的个数;
二者是不同的,例如 字符数组 char a[20]="abc" 那么a的长度即strlen(a)就是3;而数组里面存的字符实际上是"abc\0"是4个字符;因此char a[3]="abc"; 是错的

查看完整回答
反对 回复 2023-03-18
  • 3 回答
  • 0 关注
  • 87 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信