簡體   English   中英

c中字符串數組的功能

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM