2017-02-09 19 views
1

我一直在试图使该功能需要一个字符串数组和计数的单词数,但我不断收到0作为我的答案,即它没有计入任何东西。我想知道有人能帮我吗?我相信逻辑是正确的(我可能是错的),但我真的大多不确定我会遍历C:我的功能不计任何话

感谢你的方式!

这里是我的代码:

int fWords (char **array, int index) { 

    int number = 0; 
    int i = 0; 
    int in = 0; 
    int j = 0; 
    int length = 0; 

    while (i < index) { 
     length = strlen (array[i]); 
     for (j = 0; array[i][j] < length; j++) { 
      if (isspace(array[i][j]) != 0) { 
       in = 0; 
      } 
      else if (in == 0) { 
      in = 1; 
      number++; 
      } 
     } 

     i++; 
    } 

    return number; 
} 

回答

0

这种情况是不正确的:

for (j = 0; array[i][j] < length ; j++) 
//   ^^^^^^^^^^^^^^^^^^^^ 

应该只是

for (j = 0; j < length ; j++) 
//   ^^^^^^^^^^ 

这将解决这个问题为零。

+1

东西太感谢你了!这解决了我的问题,它实际上是计数感谢上帝哈哈,但由于某种原因,它已被关闭了很多,我假设这是我没有正确传递所有字符串或东西 – kirkosaur

1

您需要的内循环的每次运行后重置英寸这样

while (i < index) { 
    length = strlen (array[i]); 
    in = 0; 
    //^^^^^^^ 
    for (j = 0; j < length; j++) { 
     if (isspace(array[i][j]) != 0) { 
      in = 0; 
     } 
     else if (in == 0) { 
     in = 1; 
     number++; 
     } 
    } 

    i++; 
} 
+0

非常感谢!那实际上解决了我所有的问题 – kirkosaur

+0

@kirkosaur:如果它回答你的问题,请不要忘记接受答案! –