gpt4 book ai didi

c - 在数组中搜索字符串并返回索引

转载 作者:太空宇宙 更新时间:2023-11-04 02:58:22 26 4
gpt4 key购买 nike

我的代码有问题。输入要搜索的字符串后,程序崩溃了。

我已经检查了我的代码,但我仍然无法弄清楚哪里出了问题。

需要您的建议。

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

int findTarget(char *string, char *nameptr[], int num);
int main()
{
int index, index2;
int size;
char *nameptr[100];
char *string[100];

printf("Enter the number of names: ");
scanf("%d",&size);

for(index=0; index<size; index++)
{
printf("Enter A Name: ");
scanf("%s", &nameptr[index]);
}

printf("\nEnter a string to search:");
scanf("%s", &string);

index2 = findTarget(string[100], nameptr, size);

if ( index2 == -1 )
{
printf("\nNo - no such name\n");
}
else
{
printf("\nYes - matched index location at %d\n", index2);
}
return 0;

 int findTarget(char *string, char *nameptr[], int num)
{
int i=0;

for ( i = 0 ; i < num ; i++ )
{

if (strcmp(nameptr[i],string)==0)
{
return i;
break;
}
}

return -1;

最佳答案

您从未将内存分配给 &nameptr[index],因此在 scanf 中使用它是未定义的行为。在调用 scanf 之前,您应该尝试执行 malloc。此外,您应该删除 &

关于c - 在数组中搜索字符串并返回索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14920781/

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