C - 将char *数组索引转换为字符串,并进行比较

时间:2017-10-14 18:06:19

标签: c arrays string

免责声明:C的极端初学者。
我有一个char *类型的数组,它将字符串插入其中。

char* arr[100];

我基本上试图比较该数组的指标中的字符串,我试图做类似的事情 strcmp(arr[0],"something")

但它们属于不同的类型,我不知道如何解决这个转换问题,我已经看了其他问题,但它并没有真正解决我的问题。

我尝试使用转换 char str; strcpy(str,arr[0]); 但是,它仍然没有提供正确的输出。

2 个答案:

答案 0 :(得分:2)

尝试这样做:

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

int main(int argc, char **argv)
{
    const char* str_cmp = "something";
    char* arr[100] = {"Something1","Something2","Something3"}; //You can declare 100 string here
    int rc = strcmp(arr[0], str_cmp);
        if(rc == 0)
        printf("[%s] equals [%s]\n", arr[0], str_cmp);
    else if(rc < 0)
        printf("[%s] precedes [%s]\n", arr[0], str_cmp);
    else if(rc > 0)
        printf("[%s] follows [%s]\n", arr[0], str_cmp);
    return 0;
}

获取有关的其他信息 strcmp

修改

如果您想比较arr[100]中的其他字符串,只需尝试使用for循环进行索引。

for(size_t i = 0 ; i < 100 ; i++)
{
  ///Comparing goes here
}

答案 1 :(得分:0)

strcmp(arr[0], "something")上的{p> char* arr[100]效果非常好:

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

char* arr[100];

int main(void)
{
    int r;
    arr[0]="something";
    r = strcmp(arr[0], "something");
    printf("%d\n", r);
    return 0;
}