用空格分隔字符串

埃坦·塞里·莱维(Eitan Seri-Levi)

在阅读此问题之前,请注意我的问题与学校作业有关。对于此分配,我们允许使用的唯一函数是malloc()。其他所有事情都必须在不使用其他库的情况下完成。

我正在调用ft_split_whitespaces函数。此函数将字符串作为输入并将其“拆分”为单词。单词是分隔的空格,制表符和换行符。

#include <stdio.h>

char **ft_split_whitespaces(char *str);

int main(void)
{
    char *str = "what is";
    char **test = ft_split_whitespaces(str);

} 

对于上面的示例,每个索引的结果

test[0] = "what"
test[1] = "is"
test[2] = NULL

但是,我只能打印test [0]的结果。所有其他索引都不会打印出来显示。这是一些我认为应该打印函数结果的代码示例。

int i = 0;
while(test[i] != NULL)
{
   printf("%s", test[i]);
   i++;
}

运行这部分代码后,仅将test [0]打印到输出中。我一直坐在这里尝试调试我的代码几个小时。如果有人有空闲时间并且不介意查看我的代码,我将不胜感激。我感觉这可能与我使用malloc的方式有关,但是我仍然无法弄清楚。

#include <stdlib.h>
#include <stdio.h>


int     count_whitespaces(char *str)
{
    int space_count;
    int i;

    space_count = 0;
    i = 0;
    while(str[i] != '\0')
    {
        if(str[i] == ' ' || str[i] == 9 || str[i] == '\n')
        {
            if(str[i+1] != ' ' && str[i+1] != 9 && str[i+1] != '\n')
                space_count++;
        }
        i++;
    }
    return (space_count);
}

int     check_whitespace(char c)
{
    if (c == ' ' || c == 9 || c == '\n' || c == '\0')
    {
        return (1);
    }
    else
        return(0);
}

int     count_characters(char *str, int i)
{
    int char_count;

    char_count = 0;
    while(str[i])
    {
        if(str[i+1] != ' ' && str[i+1] != 9 && str[i+1] != '\n')
            char_count++;
        else
            break;
        i++;
    }
    return (char_count);
}

char    **ft_split_whitespaces(char *str)
{
    int     i;
    int     j;
    int     k;
    char    **word;
    int     space;

    i = 0;
    j = 0;
    k = 0;
    word = (char**)malloc(sizeof(char*)*(count_whitespaces(str) + 2));
    while(str[i] != '\0')
    {
        if (check_whitespace(str[i]) == 1)
            i++;
        else
        {           
            if((word[j] = malloc(sizeof(char) * (count_characters(str, i) + 1))) == NULL)
                return (NULL);
            while (check_whitespace(str[i]) == 0)
            {
                word[j][k] = str[i];
                i++;
                k++;
            }
            j++;
        }       
    }
    j++;
    word[j] = NULL;
    j = 0
    return word;
}
痴呆症

您忘了重设kwhile循环ft_split_whitespaces应该看起来像

  while (str[i] != '\0') {
    if (check_whitespace(str[i]) == 1){
      i++;
    }
    else {
      if ((word[j] =
           malloc(sizeof(char) * (count_characters(str, i) + 1))) == NULL){
        return (NULL);
      }
      while (check_whitespace(str[i]) == 0) {
        word[j][k] = str[i];
        i++;
        k++;
      }
      word[j][k] = '\0';
      j++;
      k = 0;             // reset k
    }
  }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

JavaScript用空格分隔字符串

来自分类Dev

用空格分隔字符串

来自分类Dev

用空格分隔字符串

来自分类Dev

Jinja2用空格分隔字符串

来自分类Dev

T-SQL用-和空格分隔字符串

来自分类Dev

如何剪切已经用空格分隔的字符串?

来自分类Dev

用空格分隔的字符串在javascript中用于对象

来自分类Dev

用空格分隔的字符串的反向元素返回的字符串比原始字符串大

来自分类Dev

用空格和正斜杠分隔字符串,并用正斜杠分隔

来自分类Dev

Java:单词之间存在可变数量的空格时,用空格分隔字符串?

来自分类Dev

分隔字符串,包括空格块

来自分类Dev

遍历以空格分隔的字符串

来自分类Dev

字符串长度,以空格分隔

来自分类Dev

Java字符串用单词,空格和特殊字符分隔正则表达式

来自分类Dev

将单元格数组或字符串组合成单个用空格分隔的字符串

来自分类Dev

将单元格数组或字符串组合成单个用空格分隔的字符串

来自分类Dev

用特殊字符“ \”分隔字符串。

来自分类Dev

用特殊字符分隔字符串

来自分类Dev

用加号(+)字符分隔字符串

来自分类Dev

如何用空格分隔字符串,并保持逗号分隔?

来自分类Dev

在不用引号引起来的情况下,用空格和句点分隔字符串

来自分类Dev

preg_用单引号之间的空格分隔字符串

来自分类Dev

用空格分隔符连接多个numpy字符串数组

来自分类Dev

用空格分隔的整数字符串对列表进行排序

来自分类Dev

jQuery寻找小部件以将多个用空格或逗号分隔的字符串值作为对象

来自分类Dev

用空格分隔的字符串匹配的正则表达式

来自分类Dev

Python:用空格分隔的字符串的每个词都用引号引起来

来自分类Dev

为什么我的 NamedPipe 用空格分隔我的字符串?

来自分类Dev

用符号“ *”分隔字符串

Related 相关文章

  1. 1

    JavaScript用空格分隔字符串

  2. 2

    用空格分隔字符串

  3. 3

    用空格分隔字符串

  4. 4

    Jinja2用空格分隔字符串

  5. 5

    T-SQL用-和空格分隔字符串

  6. 6

    如何剪切已经用空格分隔的字符串?

  7. 7

    用空格分隔的字符串在javascript中用于对象

  8. 8

    用空格分隔的字符串的反向元素返回的字符串比原始字符串大

  9. 9

    用空格和正斜杠分隔字符串,并用正斜杠分隔

  10. 10

    Java:单词之间存在可变数量的空格时,用空格分隔字符串?

  11. 11

    分隔字符串,包括空格块

  12. 12

    遍历以空格分隔的字符串

  13. 13

    字符串长度,以空格分隔

  14. 14

    Java字符串用单词,空格和特殊字符分隔正则表达式

  15. 15

    将单元格数组或字符串组合成单个用空格分隔的字符串

  16. 16

    将单元格数组或字符串组合成单个用空格分隔的字符串

  17. 17

    用特殊字符“ \”分隔字符串。

  18. 18

    用特殊字符分隔字符串

  19. 19

    用加号(+)字符分隔字符串

  20. 20

    如何用空格分隔字符串,并保持逗号分隔?

  21. 21

    在不用引号引起来的情况下,用空格和句点分隔字符串

  22. 22

    preg_用单引号之间的空格分隔字符串

  23. 23

    用空格分隔符连接多个numpy字符串数组

  24. 24

    用空格分隔的整数字符串对列表进行排序

  25. 25

    jQuery寻找小部件以将多个用空格或逗号分隔的字符串值作为对象

  26. 26

    用空格分隔的字符串匹配的正则表达式

  27. 27

    Python:用空格分隔的字符串的每个词都用引号引起来

  28. 28

    为什么我的 NamedPipe 用空格分隔我的字符串?

  29. 29

    用符号“ *”分隔字符串

热门标签

归档