文字列を受け取る関数を作成しようとしていますが、これはすべてmainで行われています。ここに私がこれまで持っているものがあります。Cスタイルの文字列に変換する
#include <cstring>
#include <iostream>
#include <string>
std::string str = "zombie";
void Reverse(std::string a)
{
char* a1 = a.c_str;
char* a2;
for (int i = (strlen(a1) -1); a1[i]!=0; i--)
{
a2 += a1[i];
}
str = a2;
}
int main()
{
Reverse(str);
std::cout << str << std::endl;
}
でも、このエラーが発生します。私はこの質問にポインタを利用することはできません。助言がありますか?
EDIT:特に、挿入されたパラメータaをCスタイルの文字列に変換する際に問題があります。
EDIT 2:それで、私はちょっとした掃除を始めました。私の理解によれば、私が持っていたコードは、適切な変更を加えても、私の目標を達成できませんでした。これはより良い進路になるだろうか?関数に渡す前に文字列をCスタイルに変換するだけです。
void Reverse(const char* s)
{
int x = strlen(s);
std::string str = "";
for (int c = x; c > 0; c--)
{
str += s[c];
}
}