请问if(!isdigit(s[i])) 什么意思 有实际用吗?

#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'什么意思啊 初学者 请详细解释下 谢谢。

HUH函数
浏览 131回答 3
3回答

哆啦的时光机

if(!isdigit(s[i])) 中间的这个isdigit(s[i])是判断s【i】是不是为数字,如果为数字返回非o值,比如s【i】是一个数字,isdigit(s[i])就返回一个非0,!isdigit(s[i])就是是0值,if后面的语句就不执行,就相当于数字不存到新的数组里面s【n】,达到了删除的目的

扬帆大鱼

isdigit判断该字符是否为数字,是数字返回非0。=0或’\0’为字符串结束符,一般字符串都有结束符,不然系统认不了isdigit判断该字符是否为数字,是数字返回非0。=0或’\0’为字符串结束符,一般字符串都有结束符,不然系统认不了

哈士奇WWW

你是要删除数字字符,所以if条件中判断不是数字字符就保存起来,‘\0'是字符的结束符,如果没有,会出现乱码isdigit是ctype.h这个头文件里的一个库函数,表示判断字符是否是0-9的数字
打开App,查看更多内容
随时随地看视频慕课网APP