比较C中的char *

时间:2014-04-25 12:02:57

标签: c string strcmp

我正在尝试比较位模式,为此我有一个结构,它将模式保存为字符串。然后我想将该字符串与我构建的另一个字符串进行比较我正在使用strcmp,但它匹配两个字符串,即使它们不匹配。 这是我的代码

typedef struct
{
    int emp;
    char *context;
    int numOnes;
    int numZeros;


}Pattern;

char *patt, str[t+1];
    patt = str;
    while(count<t){
        //printf("Stream: %d\n", stream[end]);
        if(stream[end] == 1){
            patt[count]= '1';
            //writeBit(1);
        }
        else{
            patt[count]='0';
            //writeBit(0);
        }


        end--;
        count++;
    } //code to build a string

while(i<(1<<t)&&(found==0)){
        if((strcmp(patt,patterns[i].context)==0)){
            if(patterns[i].numOnes <= patterns[i].numZeros){
                prediction = 0;
                checkPredict(prediction,stream[end], i);
            }
            else{
                prediction = 1;
                checkPredict(prediction,stream[end], i);
            }
            found = 1;

        }
        else{
            found = 0;
        }
        i++;
    }//comparing string

1 个答案:

答案 0 :(得分:3)

您永远不会终止patt,即在最后一个字符后面写'\0'个字符。因此,它不是有效的字符串,因此您无法在其上使用strcmp()