为什么 无论我输入的是不是bwr其中的一个数,return的都是TRUE的值?(原函数都可以执行下去)

int isvalidChar(char c[])
{
int valid;
int j,z;
int numofError=0;

for(j=0;j<MAXELS;j++)
{
if(c[j]=='b')
z++;
else if(c[j]=='w')
z++;
else if(c[j]=='r')
z++;
else
numofError++;
}
if(numofError!=0)
valid=FALSE;
else
valid=TRUE;
return(valid);
}

//数组c[]中的 字符个数 为 n,n应该是 n<=MAXELS, 而你的 for 中 用的是 MAXELS, c[]中有的
//可能是空的,所以 numofError++; 也会执行,就不正确了,下面是修改好了的。
//你看行不.
#include <stdio.h>
#include <string.h>
#define MAXELS 100
#define TRUE 1
#define FALSE 0

int isvalidChar(char c[])
{
int valid;
int j,z;
int numofError=0;

int n=0;
n=strlen(c);
for(j=0;j<n;j++)
{
if(c[j]=='b')
z++;
else if(c[j]=='w')
z++;
else if(c[j]=='r')
z++;
else
numofError++;
}
if(numofError!=0)
valid=FALSE;
else
valid=TRUE;
return(valid);
}
void main(){
char c[MAXELS];
printf("input a chars : ");gets(c);
int k=0;
k=isvalidChar(c);
if(k==1)
printf("OK TRUE\n");
else
printf("NO FALSE\n");

}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-01-03
没看懂你想干啥,是想统计有效字符的个数,还是要判断字符数组中是否包含无效字符

bool isValidChar( char checkedCharGroup[],
int array_max1,
char validCharGroup[],
int array_max2 )
{
bool isValid;
int i,j;

for( i = 0; i < array_max1; ++i )
{
isValid = false;
for( j = 0; j < array_max2 ++j )
{
if ( checkedCharGroup[i] == validCharGroup[j] )
{
isValid = true; break;
}
}
if ( false == isValid )
{
return false;
}
}
return true;
}本回答被网友采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网