【问题标题】:c: my function does not count any wordsc:我的函数不计算任何单词
【发布时间】:2017-02-09 02:18:45
【问题描述】:

我一直试图让这个函数接受一个字符串数组并计算单词的数量,但我一直得到 0 作为我的答案,即它没有计算任何东西。我想知道是否有人可以帮助我?我相信逻辑是正确的(我可能是错的),但我真的不确定我将如何迭代

谢谢!!

这是我的代码:

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;
}

【问题讨论】:

    标签: c string function pointers words


    【解决方案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++;
    }
    

    【讨论】:

    • 非常感谢!!这实际上解决了我所有的问题
    • @kirkosaur:如果它回答了您的问题,请不要忘记接受答案!
    【解决方案2】:

    这个条件不正确:

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

    应该很简单

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

    这将解决零的问题。

    【讨论】:

    • 非常感谢!!这很好地解决了我的问题它实际上是在计数感谢上帝哈哈但由于某种原因它被咬了一口,我假设这是我没有正确传递所有字符串或其他东西
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多