本帖最后由 名侦探柯基 于 2016-8-30 11:10 编辑
需求:判断一个字符串是否包含某个字符,如果包含,返回其首次出现的位置,否则返回-1
我通过for循环可以满足要求,在用while循环的时候,发现查找'a'的时候,返回值不是第一次出现的位置.
自己想不明白i=0的时候为什么不能输出
int searchChar(char str[],char key){
// for (int i=0; str!='\0'; i++) {
// if (str==key) {
// return i;
// }
// }
int i=0;
while (str!='\0') {
i++;
if (str==key) {
return i;
}
}
return -1;
}
int main(int argc, const char * argv[]) {
char str1[]="abcdefadcdef";
int loc=searchChar(str1, 'a');
printf("%d\n",loc);
return 0;
}
|
|