1

私は太陽の下ですべてを試して、簡単な次のことを行いました:

1) stdin から入力文字列を受け取ります。

2) それを char ポインターに変換して、表/回文検索関数に渡すことができるようにします。

ステップ 2 の後半は自信がありますが、ハッキングできない型の一致です。以下は、問題の私の本体です。palin 関数のプロトタイプは ですint palin(char *str)

int main()
{
    string input;
    cin >> input;
    char seq[] = input.c_str(); //Error here, invalid initialization?
    int len = strlen(seq);
    int result = palin(seq);
    cout << result;
    getchar();
    return 0;
}

何か案は?c_str()定数ポインタ char が必要なため、変換でも問題が発生しますが、char ポインタは変更されます。

4

2 に答える 2

2

実際に変更可能にする必要がある場合は、次のように、文字列を変更可能なバッファーにコピーして、palin に渡す必要があります。

int main()
{
  string input;
  cin >> input;
  char seq[input.length() + 1];
  memcpy(seq, input.c_str(), sizeof seq);
  int result = palin(seq);
  cout << result;
}
于 2014-10-18T14:59:53.257 に答える