if ( 'a'<*pstr && *pstr<'z' || 'A'<*pstr&& *pstr<'Z' )
*pstr表示字符串,‘a’表示字符,这样比较肯定会错
你应该在函数里定义一个字符数组,用strcpy()把传过来的字符串拷贝到字符数组里,再做比较操作
while ( NULL != *pstr) {
if ( 'a'<*pstr && *pstr<'z' || 'A'<*pstr&& *pstr<'Z' )
改为
while ( *pstr!=NULL) {
if (( 'a'<*pstr && *pstr<'z') || ('A'<*pstr&& *pstr<'Z' ) )
int Count (string * pstr){
int count =0;
while ('\0' != *pstr) {
if ( 'a'<=*pstr && *pstr<='z' || 'A'<=*pstr&& *pstr<='Z' )
count ++ ;
pstr ++ ;
}
return count ;
}
你把字母a,z,A,Z忽略了,而且终止符应该是'\0',这是字符串的终止符