C++ の学習を開始し、次のコードで部分文字列を実行する単純な関数を作成してみてください。
char* substring(int start, int end, const char* target)
{
size_t length = strlen(target);
char result[(length + 1)];
int iterator = 0;
for(int i = start; i < length; i++)
{
if(i <= end)
{
result[iterator] = target[i];
iterator++;
}
}
result[iterator] = '\0';
cout << result << endl; // This give correct result "aya";
return result;
}
これらの関数をメイン メソッドで使用すると、次のようになります。
int main(int argc, char** argv) {
char some_text[] = "Saya Makan";
char* sub = substring(1, 3, some_text); // No string returned
cout << "Substring Result is: " << sub;
return 0;
}
出力は次のようになります。
aya
Substring Result is:
RUN SUCCESSFUL (total time: 44ms)
結果に見られるように、私の関数は空の文字列以外は何も返していませんが、戻り値の前にコード行があり、「結果」変数は結果を正しくエコーしました。私の関数内で何が起こっているのか説明していただけませんか?何か不足していますか?