我试图从链表中打印唯一的文件,基本上我有一个char*检查我与当前文件进行比较,如果它不同,那么我将指针更改为新文件并打印出来,我有5个实例在2个唯一文件,但是当我运行循环时,它打印出5个文件(1个文件两次,另一个文件3次),而不是只打印每个文件一次,我该如何解决这个问题?
for (ptr = head; ptr != NULL; ptr = ptr->next){
if(ptr->fileName != check){
check = ptr->fileName;
printf("%s\n", check);
}
else{
continue;
}
}
Run Code Online (Sandbox Code Playgroud)
在C中,你做不到if ( str1 != str2 ).你必须使用这些strcmp()功能.
代替
if(ptr->fileName != check){
Run Code Online (Sandbox Code Playgroud)
你将会拥有
if ( strcmp(ptr->fileName, check) != 0 ) {
Run Code Online (Sandbox Code Playgroud)
strcmp 如果字符串相等则返回0,并且-1或1取决于str1或str2是否大于另一个.