[英]function of arrays of strings in c
此功能停止警告,我無法發現問題,有人可以嘗試找到它嗎? 應該從字符串數組中給我設計名稱和編號。
#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
因為它是一個字符串。
采取這些措施並修復上面注釋中提到的原型,可以得到:
#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;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.