1
我即将中风,我无法弄清楚为什么此代码无法工作。目标是为字符串搜索字符串数组。如果找到正在搜索的字符串,则该方法返回true,否则返回false。不幸的是,我犯了一些错误,并且即将中风,因为我无法弄清楚它是什么。 printf只是为了显示数组正在迭代,非常感谢您的帮助。另外,for循环中的-1只是一些有用的东西,我不认为它应该在那里,但要注意当你把它拿出来时会发生什么。另外,我想指出的是,由于我正在研究的部分,我声明数组的方式是我需要的。将字符串与字符串数组进行比较的问题C
#include <stdio.h>
#include <stdbool.h>
#include <string.h>
bool seachForString(char *firstString, int numberOfStrings, char *searchingFor);
int main(void){
bool found;
char *search = "Earth";
char *planets[] = {"Mercury", "Venus", "Earth", "Mars", "Jupiter", "Saturn", "Uranus", "Neptune", "Pluto"};
found = seachForString(planets[0], 9, search);
printf("Found: %d\n", found);
return 0;
}
bool seachForString(char *firstString, int numberOfStrings, char *searchingFor){
char *stringInList = firstString;
for(int i=0; i<numberOfStrings-1; i++){
printf("%s\n", stringInList);
if(strcmp(stringInList, searchingFor) == 0){
return true;
}else{
while(*(stringInList++) != '\0');
}
}
return false;
}
为什么你有别的吗?我认为如果字符串stringInList指向的字符串不是我正在查找的字符串,那么删除它将使此工作 – Dani
需要它遍历数组,如果字符串stringInList指向的字符串不是我正在查找的字符串,则指针需要递增,直到它位于下一个字符中字符串 – holycatcrusher
@holycatcrusher:字符串不保证按顺序分配。 – Dani