我应该遍历传入的数组的字符并查找第一次出现的char,然后返回第一次出现的索引。如果没有找到char,那么我返回-1。这似乎适用于所有字符,除了0处的字符,它由于某种原因找不到。
int find_ch_index(char string[], char ch) {
int i = 0;
while (string[i++]) {
if (string[i] == ch) {
return i;
}
}
return -1;
}
答案 0 :(得分:2)
你应该在while循环结束时增加i:
int find_ch_index(char string[], char ch) {
int i = 0;
while (string[i]) {
if (string[i] == ch) {
return i;
}
i++
}
return -1;
}
答案 1 :(得分:1)
你永远不会找到第一个字符,因为: while(string [i ++])
将i从'0'递增到'1',因此'if'处的语句从不比较第一个字符。
退出此增量并在循环结束时执行此操作。
答案 2 :(得分:0)
我从0增加到1 在循环中。
答案 3 :(得分:0)
在while条件下
while (string[i++]) {
你增加了指数i。因此在下一个声明中
if (string[i] == ch) {
您正在使用增加的索引。
该功能可以按以下方式编写
int find_ch_index( const char string[], char ch )
{
int i = 0;
while ( string[i] && string[i] != ch ) i++;
return string[i] == ch ? -1 : i;
}