0

我需要将 char 数组的单个元素从 int main 传递给函数。这应该将单个字符传递给数组。不是整个数组或任何东西。我尝试将其转换为单个字符(IE,char herps = charArray[1];),然后将其作为 herps 传递给函数,但它实际上给出了相同的错误,即使我知道它是其中的一部分。

函数必须是字符串 herp(char); . 该数组包含空格和诸如此类的东西。

这给了我错误“从 'char' 到 'const char*' 的无效转换”

源代码:

    #include <iostream>
    #include <string>
    using namespace std;
    string toMorse(char);

    string toMorse(char letter){
    return "herp";
    }

    int main()
    {const int SIZE = 10;
    char line[SIZE];
    cin.getline(line, SIZE);
    int count=10;
    string toMorse(line[count]);
    return 0;}
4

3 回答 3

1

如果您的数组被声明为

char charArray[SOME_SIZE];

然后调用声明为的函数

string myFunc(char c);

通过

myFunc(charArray[index]);

不会给你报错。

于 2013-10-05T02:59:14.083 回答
1

在你的 main() 中,

string toMorse(line[count]);

你没有调用 toMorse 函数,你实际上是在创建一个名为 toMorse 的字符串实例,构造函数被调用并寻找 const char * 作为参数。参考std::string

您正在创建一个大小为 10 的 char 数组并尝试读取第 11 个索引,这也是错误的。

修改代码:

   int main()
   {
    const int SIZE = 10;
    char line[SIZE];
    cin.getline(line, SIZE);
    int count=9; //Any whole number between 0 and SIZE-1 is acceptable.
    toMorse(line[count]);
    return 0;
   }         
于 2013-10-05T06:22:27.970 回答
0

在发布的代码中的倒数第二个语句中,函数调用语法不正确。
字符串 toMorse(line[count]); 需要替换为字符串 returnString = toMorse(line[count]); 或者您可能只想传递 char 而不是从该行中删除“字符串”。

于 2013-10-05T05:53:08.807 回答