我有一个名字列表,必须在C中返回每个名字的数量

问题描述 投票:0回答:1

我有此列表:[michelle,michelle,sara,jorge,sara,marie]我需要返回这样的列表[[michelle,2],[sara,2],[jorge,1],[marie,1]]我曾想过用两个for();做某事,但不知道该怎么做。有人可以指导我吗?预先感谢。

for(int i=0;names[i]!=NULL;i++){
        for (int j=0;names[j]!=NULL;j++){
            if(names[i]==names[j]){

            }
c arrays multidimensional-array
1个回答
0
投票
int i,j;
i=0;
while (name[i++]!=NULL){
    j=0;
    while (name[j++]!=NULL){
        /* whatever */
    }
}

将执行与for循环相同的操作。实际上,一个人可以做]

int i=0,j,ptr=0,flag;
char strlist[NUMBER_OF_STRING][LENGTH_OF_STRING];
int count[NUMBER_OF_STRING];
while (name[i++]!=NULL){
    j=flag=0;
    while (j++<ptr){
        if (strcmp(name[i],strlist[j])){
            flag=1;
            count[j]++;
            break;
        }
    }
    if (!flag){
        strcpy(strlist[ptr],name[i]);
        count[ptr]=1;
        ptr++;
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.