检查字符串是否更改

时间:2013-04-02 22:08:21

标签: c string pointers

oK所以我在c中编写程序并想检查字符串是否已更改,所以最初我这样做了:

 if(strcmp (ax,result)!=0){
    result=ax;
        xil_printf(result);
        xil_printf("detected");
}
    }

它只检测到一次,然后我发现我正在使2个指针相等,所以即使斧头的变形因此也会发生,因为它们现在都指向同一个东西,但我不想要我只想将结果数据更改为等于ax的ppointee,因为字符串ax将在代码中稍后更改,以便我可以检测到它何时执行。 所以我试过这个:

if(strcmp (ax,result)!=0){
    *result=*ax;
        xil_printf(result);
        xil_printf("detected");
}
    }

并且它出现了错误,无论如何如何做我想做的事情,我使结果数据等于ax但他们没有指向同一件事: 所以,如果

ax-->"hello"  adrress: 232
result-->"frog"  adrress: 415

我发现它们是不同的然后我这样做:

ax-->"hello"  adrress: 232
result-->"hello"  adrress: 415

但不喜欢这个! :

ax-->"hello"  adrress: 232
result-->"hello"  adrress: 232   <--(they point at same thing which happens when i say result=ax)

所有想法?

1 个答案:

答案 0 :(得分:1)

您需要执行strcpy(result, ax);

唯一的问题是,你需要确保结果有足够的空间来存储斧头

所以你的代码将是

if(strcmp(ax,result) != 0){   // result is different from ax
     strcpy(result, ax);      // copy ax to result
     xil_printf(result);
     xil_printf("detected");
}