gpt4 book ai didi

C 字符串转入数组

转载 作者:行者123 更新时间:2023-11-30 15:48:32 24 4
gpt4 key购买 nike

我需要帮助将字符串分解为数组。我让它工作而不存储信息,只打印 token 。但对于这个 prog,我需要存储 strtok 制作的标记,并使用二分搜索来执行 strncmp,每个元素来自不同的数组。

./file“示例输入:因为我是 bat 侠”

#include <stdio.h>
#include <string.h>

int main(int argc, char *argv[])
{
char delims[] = " ";
char *result = NULL;

int i = 1;
int j = 0;

char sent[1000];
result = strtok(argv[1], delims);
sent[0] = *result;
while(result != NULL)
{
result = strtok(NULL, delims);
sent[i] = *result;
i++;
}

while(j < i)
{
printf(" %p\n", &sent[j]);
j++; //Forgot to add it in first time around
}
return 0;
}

问题是我遇到了段错误,我似乎无法将标记存储到数组中,我不明白为什么。是指针的问题吗?传递不兼容的数据类型?还有别的吗?

编辑:想要的输出:“示例”“输入:”“'原因”“我”“ bat 侠”

任何帮助都会很棒。

最佳答案

在您的情况下,很容易找出导致崩溃的原因:您取消引用 NULL 指针。

想一想,当 resultNULL 时,表达式 *result 会发生什么。

<小时/>

此外,如果您使用了调试器,您只需不到一分钟即可发现此错误。当程序崩溃时,程序员第一本能应该始终是在调试器中运行该程序。

关于C 字符串转入数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16768052/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com