gpt4 book ai didi

c - 用 C 编程 : Making a substring function

转载 作者:太空宇宙 更新时间:2023-11-04 01:21:59 24 4
gpt4 key购买 nike

我正在做 C 语言编程中的一个问题,它要求我编写一个程序,该程序需要一个词、一个起始位置以及要获取的词数,并将其放入结果数组中。我在网上看到了一些解决方案,但他们都使用了 POINTERS,我不能使用,因为我们还没有进入该部分。

#include <stdio.h>

char substring (char source[], int start, int count, char result[])
{
int i;

for (i = 0; (i < count) && (source[start + i] != '\0'); ++i)
{
result[i] = source[start + i];
}

result[i + 1] = '\0';

return result;
}

int main (void)
{
char substring (char source[], int start, int count, char result[]);
char source[81];
char result[81];
int start, count;

printf ("Enter the word you want to check!\n");
printf ("And the start position as well as the number of words to count!\n");
scanf ("%s %i %i", &source[81], &start, &count);

printf ("Your result is: %s\n", substring(source, start, count, result));
}

我在编译时不断遇到错误,而当我修复这些错误时却没有得到结果。谢谢。

最佳答案

当您将 &source[81] 传递给 scanf 函数时,您传递了一个指向数组中第 82 个字符的指针,该指针越界导致 < em>未定义的行为。

您应该传递指向数组中第一个 字符的指针:&source[0]

另请注意,&source[0] 等同于普通的 source,因为数组自然会衰减为指向其第一个元素的指针。

关于c - 用 C 编程 : Making a substring function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40232558/

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