在C中的字符串的char数组中搜索字符串

迈克尔·西奥蒂诺
char names [MAX_CLASS_SIZE][MAX_NAME_SIZE+1]={"Julias Hoffman","Dianne Conner","Mitchell Cooper","Johnnie Greene","Johanna Mason","Kevin Adkins","Brandi Spencer","Marian Tyler","Chester Cross","Martin Lawrence","Jane Smith","Sara Jones"};

char specificName[]="";

int search(char names[][MAX_NAME_SIZE+1],char specificName[])

for(i=0;i<MAX_CLASS_SIZE;i++){
    if (strcmp(names[i],specificName)==0)
    {
        printf("Found %s",names[i]);
        return i;
    }
}

此函数接收一个称为名称的字符串数组和一个代表特定名称的字符数组。此函数在数组名称中搜索特定名称,如果找到,则返回该特定名称的索引;如果未找到,则返回-1。

无法让阵列正确格式化我的歉意。在主要方面,我要求用户输入名称并将其存储在specificName char数组中。然后在搜索功能中,我尝试搜索给定名称的用户的名称数组,并根据是否找到该名称返回一个特定值。我已经包括了必要的库。我正在尝试使用strcmp来执行此操作,但是它似乎无法正常工作。任何帮助是极大的赞赏!

美智

您可以尝试以下方法:

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

int search(char **names,char *specificName, size_t length){
    size_t i,found=0;
    for(i=0;i<length;i++){
        if (strcmp(*(names + i),specificName)==0){
            found = 1;
        }
    }
    return found == 1 ? 0 : 1;
}


int main(void) {
    size_t length;
    char specificName[100];
    char *names[12]={"Julias Hoffman","Dianne Conner","Mitchell Cooper","Johnnie Greene",
                     "Johanna Mason","Kevin Adkins","Brandi Spencer","Marian Tyler",
                     "Chester Cross","Martin Lawrence","Jane Smith","Sara Jones"};

    length = sizeof names / sizeof *(names + 0);

    printf("Type a name to be searched:> ");
    if( fgets (specificName, 100, stdin) == NULL){
        printf("Error!\n");
    }

    specificName[strcspn(specificName, "\n")] = 0;

    if((search(names,specificName,length)) == 0){
        printf("Found %s",specificName);
    }else{
        printf("There was no Record Found.\n");
    }
    return 0;
}

输出:

Type a name to be searched:> Sara Jones
Found Sara Jones

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章