我要進行一個判斷,比如,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 關注
- 123 瀏覽
添加回答
舉報
0/150
提交
取消