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

我要进行一个判断,比如,char zjhm[20];这个字符数组中存放不定长度的字符串。
strpack(zjhm);/*去空格*/
if( strlen(zjhm)!=15 )

富国沪深
浏览 68回答 3
3回答

九州编程

strlen(char*)函数求的是字符串的实际长度,它求得方法是从开始到遇到第一个'\0',如果你只定义没有给它赋初值,这个结果是不定的,它会从aa首地址一直找下去,直到遇到'\0'停止。char aa[10];cout<<strlen(aa)<<endl; //结果是不定的char aa[10]={'\0'}; cout<<strlen(aa)<<endl; //结果为0char aa[10]="jun"; cout<<strlen(aa)<<endl; //结果为3

慕尼黑的夜晚无繁华

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

ITMISS

我不知道你说的15位的意思,这里有2种意思一是字符串的长度,二是数组里面存放的个数;二者是不同的,例如 字符数组 char a[20]="abc" 那么a的长度即strlen(a)就是3;而数组里面存的字符实际上是"abc\0"是4个字符;因此char a[3]="abc"; 是错的
打开App,查看更多内容
随时随地看视频慕课网APP