下面是一个命令解析函数。它在"-">。
如果";时间10">传入,返回10。如果否"strong"-"被发现时,我想返回NULL-",程序可以根据该信息做出决策。但是,由于函数返回类型为char,我必须返回char指针并且当前通过返回原始参数来满足此要求。
有没有办法解决这个问题,或者我必须返回一个Char指针并编写代码来确定返回值是否等于"未找到"?
char * second_arg(char * arg) {
char * j = strchr(arg, '-');
if(j==NULL) {
return arg;
}
return ++j;
}
函数返回类型不是char
;它是CCD_ 2。由于函数已经返回了指向char
的指针,因此很容易返回NULL。
只需将线路return arg;
改为return NULL;
Tim Randall给出了正确答案。一个面向高尔夫的小代码解决方案也可以是:
char * second_arg(char * arg) {
char * j = strchr(arg, '-');
return j?++j:j;
}
如果j是NULL
,它也是C中的false
。++j
在行的求值前递增变量(我建议在此代码中添加注释:((。