#include <ctype.h>#include <stdio.h>char* dele(char *s){int n=0,i;for(i=0;s[i];i++)if(!isdigit(s[i]))s[n++]=s[i];s[n]=0;return s;}為什么條件if 要s[i]<'0'||s[i]>'9'啊 不應該相反嗎 請在解釋下 s[0]=0或者'\0'什么意思啊 初學者 請詳細解釋下 謝謝。
3 回答

哆啦的時光機
TA貢獻1779條經驗 獲得超6個贊
if(!isdigit(s[i])) 中間的這個isdigit(s[i])是判斷s【i】是不是為數字,如果為數字返回非o值,比如s【i】是一個數字,isdigit(s[i])就返回一個非0,!isdigit(s[i])就是是0值,if后面的語句就不執行,就相當于數字不存到新的數組里面s【n】,達到了刪除的目的

揚帆大魚
TA貢獻1799條經驗 獲得超9個贊
isdigit判斷該字符是否為數字,是數字返回非0。
=0或’\0’為字符串結束符,一般字符串都有結束符,不然系統認不了
isdigit判斷該字符是否為數字,是數字返回非0。
=0或’\0’為字符串結束符,一般字符串都有結束符,不然系統認不了

哈士奇WWW
TA貢獻1799條經驗 獲得超6個贊
你是要刪除數字字符,所以if條件中判斷不是數字字符就保存起來,‘\0'是字符的結束符,如果沒有,會出現亂碼
isdigit是ctype.h這個頭文件里的一個庫函數,表示判斷字符是否是0-9的數字
- 3 回答
- 0 關注
- 231 瀏覽
添加回答
舉報
0/150
提交
取消