C++ 将一个字符串与数组中的另一个字符串进行比较

C++ 将一个字符串与数组中的另一个字符串进行比较,c++,C++,下午好 我目前正在使用一个C++的子语言来完成一个定制编程环境的任务,它缺少一些特性。 我编写了以下代码: char comparameEsto(char voy, char vengo, pueblo sitios1, pueblo sitios2, pueblo sitios3,pueblo sitios4){ bool encontradoOrigen; bool encontradoDestino; char copia; for(int i=0; i&

下午好

我目前正在使用一个C++的子语言来完成一个定制编程环境的任务,它缺少一些特性。 我编写了以下代码:

char comparameEsto(char voy, char vengo, pueblo sitios1, pueblo sitios2, pueblo sitios3,pueblo sitios4){
    bool  encontradoOrigen;
    bool encontradoDestino;
    char copia;
    for(int i=0; i<13;i++){
        strcpy(copia,sitios1[i]);
    }
}

char comparameEsto(char voy, char vengo, pueblo sitios1, pueblo sitios2, pueblo sitios3,pueblo sitios4){
    bool  encontradoOrigen;
    bool encontradoDestino;
    char copia;
    for(int i=0; i<13;i++){
        strcmp(voy,sitios1[i]);
    }
}

<>我不太精通C++(我更习惯于java),而且我真的很难理解我应该做什么。

<代码>代码> char <代码>只是C语言(C++)中的一个字符,就像其他语言一样,如代码> java < /C>br/>
char
char*
之间的主要区别在于
char*
是指向char的指针,意思类似于要简化的字符串。

char
在C(或C++)语言中只是一个字符,就像在
Java
等其他语言中一样
char
char*
之间的主要区别在于
char*
是指向char的指针,意思类似于要简化的字符串。

正如所说,
char
是单个字符,而
char*
是指向字符(通常是字符串中的第一个字符)的指针

字符串函数类似于接收字符串,即指针。试图将
char
发送到接收
char*
的函数是错误的

要使用单个字符,请使用内置运算符:

  • 复制-使用赋值运算符:
    copia=sitios1[i]
  • 要进行比较-请使用比较运算符:
    voy==sitios1[i]
如前所述,
char
是单个字符,而
char*
是指向字符(通常是字符串中的第一个字符)的指针

字符串函数类似于接收字符串,即指针。试图将
char
发送到接收
char*
的函数是错误的

要使用单个字符,请使用内置运算符:

  • 复制-使用赋值运算符:
    copia=sitios1[i]
  • 要进行比较-请使用比较运算符:
    voy==sitios1[i]

char copia
只声明一个字符。要声明字符串,必须创建一个数组

    #define MAX_STRING_SIZE 30

    char copia[MAX_STRING_SIZE];

    for(int i=0; i<13;i++){
        strcpy(copia,sitios1[i]);
    }
#定义最大字符串大小30
字符复制[最大字符串大小];

for(int i=0;i
char copia
只声明一个字符。要声明字符串,必须创建一个数组

    #define MAX_STRING_SIZE 30

    char copia[MAX_STRING_SIZE];

    for(int i=0; i<13;i++){
        strcpy(copia,sitios1[i]);
    }
#定义最大字符串大小30
字符复制[最大字符串大小];

for(int i=0;i
char
只是一个字符,不是字符串。什么是
pueblo
?子语言是否缺少
std::string
?如果您能解释一下函数的参数,我们可以帮您更多忙。您好,很抱歉,我没想到会有这么快的答案。@Barmar
“pueblo”
是一个用于存储不同字符串的typedef,
“typedef char pueblo[][30];”
我使用它来打印存储在枚举上的并行值,因为我无法从枚举中打印。是的,我可以在这个子语言中使用
string.h
char
只是一个字符,而不是字符串。
pueblo
是什么?子语言缺少
std::string
?如果您能告诉我们函数的参数是什么。您好,很抱歉,我没想到会有这么快的答案。@Barmar
“pueblo”
是我用来存储不同字符串的typedef,
“typedef char pueblo[][30];”
我使用它来打印存储在枚举中的并行值,因为我无法从枚举中打印。是的,我可以在此子语言中使用
string.h
。问题是我需要将存储在sitios1[]中的整个字符串与从“voy”和“vengo”接收到的字符串进行比较,而不仅仅是一个字符,我刚刚出版的这本书讲述了如何使用它。我应该制作一个typedef char voy[15]和typedef char vengo[15]并使用它吗?问题是,我需要将存储在sitios1[]中的整个字符串与从“voy”和“vengo”接收到的字符串进行比较,而不仅仅是一个字符,我刚刚出版的那本书也讲述了如何做到这一点。我应该制作一个typedef char voy[15]和typedef char vengo[15]非常感谢Barmar!我尝试了一种错误的类似方法,我试图用strcmp直接比较两个数组,但没有意识到我需要声明一个矩阵来完成这项工作,而不是使用一维数组来使用strcpy。现在我有两种方法来处理,一种是比较copia使用用户定义的另一个参数,如果布尔值相同,则将其设置为true,或者直接使用strcmp比较输入(例如,它将存储在
char voy[1][20]
中)数组中的内容。再次感谢您的洞察力。非常感谢Barmar!我尝试了一种错误的类似方法,我试图使用strcmp直接比较两个数组,但没有意识到我需要声明一个矩阵来完成这项工作,而不是使用一维数组来使用strcpy。现在我已经有两种处理方法,一种是将copia与用户定义的另一个参数进行比较,如果相同,则将布尔值设置为true,或者直接使用strcmp将输入(例如,它将存储在
char voy[1][20]
中)与数组中的内容进行比较。再次感谢您的洞察力。