【发布时间】:2014-01-02 00:32:35
【问题描述】:
!isalpha( str[first] ) ? ( return isPalindrome( str, ++first, last ) ) : return isPalindrome( str, first, --last ) ;
我收到语法错误。
【问题讨论】:
标签: c++ conditional operator-keyword
!isalpha( str[first] ) ? ( return isPalindrome( str, ++first, last ) ) : return isPalindrome( str, first, --last ) ;
我收到语法错误。
【问题讨论】:
标签: c++ conditional operator-keyword
这是不允许的,因为return 不允许在表达式中;它只允许在语句的顶层。 (任何表达式都可以用作语句,但反之则不然。)您可以这样写:
return !isalpha(str[first])
? isPalindrome(str, ++first, last)
: isPalindrome(str, first, --last);
或者这个:
if (!isalpha( str[first] )) {
return isPalindrome( str, ++first, last );
} else {
return isPalindrome( str, first, --last );
}
【讨论】:
return !isalpha(str[first]) ?
isPalindrome(str, ++first, last) :
isPalindrome(str, first, --last);
【讨论】: