gpt4 book ai didi

c - c中字符串数组的函数

转载 作者:行者123 更新时间:2023-11-30 15:09:06 25 4
gpt4 key购买 nike

这个函数停止了 awsering,我无法发现问题,有人可以尝试找到它吗?它应该从字符串数组中为我提供设计的名称和编号。

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

int sameName();
char **getNumber();

char **getNumber (char *n[], char e[],int N){
int a;
for(a=0;a<N;a++){
if (sameName(n[a],e))
{
return n[a];
}
}
return "Not found!";
}

int sameName(char n[], char e[]){
int a;
for(a=0;e[a]!='\0';a++){
if (n[a]!=e[a])
{
return 0;
}
}
return 1;
}

int main (){
char numbers [5] [100] ={{"Ash 031"},{"Bomberman 021"},{"Rango 120"},{"Gigo Senhas 017"},{"Marcoreano 135"}};
char name [100];
char a [100];
scanf("%s",&a);
strcpy(name,getNumber (numbers,a,5));
printf("%s\n",name);
return 0;
}

最佳答案

当您将二维数组传递给 getNumber 函数时,您需要指定二维数组的大小。请参阅http://c-faq.com/aryptr/pass2dary.html了解详情。

对于 scanf 你只需要传递 a 因为它是一个字符串。

将这些加上上面评论中提到的修复原型(prototype),得到:

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

int sameName(char n[], char e[]);
char *getNumber (char n[][100], char e[],int N);

char *getNumber (char n[][100], char e[],int N){
int a;
for(a=0;a<N;a++){
if (sameName(n[a],e))
{
return n[a];
}
}
return "Not found!";
}

int sameName(char n[], char e[]){
int a;
for(a=0;e[a]!='\0';a++){
if (n[a]!=e[a])
{
return 0;
}
}
return 1;
}

int main (){
char numbers [5] [100] ={{"Ash 031"},{"Bomberman 021"},{"Rango 120"},{"Gigo Senhas 017"},{"Marcoreano 135"}};
char name [100];
char a [100];
scanf("%s",a);

strcpy(name,getNumber (numbers,a,5));
printf("%s\n",name);
return 0;
}

关于c - c中字符串数组的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36877111/

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