比较C中的单词数组



如何比较C中的2d字符数组?我试过这个

        Char **arr_1;
        Char **arr_2;
        ...// malloc. Its OK. 
        for (I=0; I<n; I++)
        {
           If (strcmp (arr_1[I],arr_2[I])==0)
                // do smth
        }

但它不起作用。我的指针不好。

数组有一些单词数组。

Ubuntu gcc

没有strcmp,程序就可以工作。

感谢

你可以做到。

char arr_1[10][10];
char arr_2[10][10];
int n;
scanf("%d",&n);
for(int i=0; i<n; i++)
{
    scanf(" %[^n]",arr_1[i]);
    scanf(" %[^n]",arr_2[i]);
}
for(int I=0; I<n; I++)
{
    if(strcmp (arr_1[I],arr_2[I])==0)
    {
        // do smth
    }
}

您一定是错误地分配了2D动态数组
考虑一下这个代码:

int SIZE=5;
char **arr_1;
arr_1 = malloc(SIZE* sizeof(char *)); //initialising an array of pointers
char **arr_2;
arr_2 = malloc(SIZE* sizeof(char *)); //initialising an array of pointers
for(i=0;i<SIZE;i++)  
{
    printf(" Enter a namen");  
    arr_1[i]=malloc(100*sizeof(char)); //for each pointer in this array allocate an array of characters
    scanf("%99s",arr_1[i]);
}
for(i=0;i<SIZE;i++)  
{
    printf(" Enter a namen");  
    arr_2[i]=malloc(100*sizeof(char)); //for each pointer in this array allocate an array of characters
    scanf("%99s",arr_2[i]);
}

for(i=0;i<SIZE;i++)  
{
    if(strcmp(arr_1[i],arr_2[i])==0)
   //do smthing 
}

相关内容

  • 没有找到相关文章

最新更新