如何比较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
}