首页 > 解决方案 > C++ 字符错误

问题描述

因此,我试图从Expresiechar 数组中取出第二个到第一个字符并将其复制到 char 变量中,然后使用该strcat函数将该变量放在另一个 char 数组的末尾Stiva。这是代码:

int SHIFT(char Expresie[], char Stiva[], int x)
{
        char a=Expresie[0];
        strcat(Stiva,a);

这就是它们在 main 中的定义方式:

    int main()
{
    char Expresie[100];
    char Stiva[100];

问题是当我运行它时它说:从'char'到'const char*'的无效转换

标签: c++char

解决方案


strcat附加字符串,而不是字符 - 它需要一个指向“C 字符串”的第一个字符的指针,而不是单个char.

最简单的方法是自己直接在末尾添加字符(当然,假设有空间):

int SHIFT(char Expresie[], char Stiva[], int x)
{
    char a=Expresie[0];
    size_t length = strlen(Stiva);
    Stiva[length] = a;
    Stiva[length+1] = 0;
    // ...

推荐阅读