1

この国の配列を印刷したいのですが、2つの国が同じ場合は一度だけ印刷したいです。国はすでにアルファベット順に並べられています。

for(b=0;b<v;b++){

if(strcmp(country[b-1],country[b]) !=0){
    printf("%s",country[b]);}

}

v は国の数

4

1 に答える 1

1

krajina に 2 次元の文字配列を動的に割り当てます。

この質問を参照してください: 2 次元メモリ割り当て

編集: 詳細:

大丈夫。あなたは国の数を数えることができると言いました。countそれをokという変数に保存するとしますか?

count今度は、行数と列数が 31の 2D 文字配列を割り当てる必要がありますよね? これは次のように行います。

int i = 0;
int **country = NULL;

if (!(country = calloc(count, sizeof(*country)))) //allocate rows
    return (0);
for (i = 0; i < count; i++)
{
    country[i] = calloc(31, sizeof(*(country[i]))); //allocate columns
}

これcountryで、2d char 配列を使用する方法と同じように通常使用できる変数ができました (コードで使用したように)。

于 2012-11-18T18:37:44.047 に答える