文字列から複数の文字を抽出して別の文字列に割り当てる関数を作成しようとしています。
コード:
// Problem 10.4
// String extraction function
#include <stdio.h>
void substring (char source[], int start, int count, char result[])
{
int i;
for (i = 0; i <= count; ++i) {
result[i] = source[start];
}
result[i+1] = '\0';
}
int main (void)
{
void substring (char source[], int start, int count, char result[]);
char source[] = "character", result[80];
int start, count;
substring(source[], 4, 3, result[]);
printf("%s\n", result);
return 0;
}
Xcodeは、その行が私に言っている
substring(source[], 4, 3, result[]);
「式を期待している」ため、コンパイルできません。
関数が値を返さないので混乱しています (関数自体の中で文字列の割り当てを行っており、文字列であるため、ポインターが関数に渡されているという意味ではありませんか?その場合、それは文字列自体が変更され、ローカル コピーではありませんか? 元の文字列が変更されている場合、なぜ値を返さなければならないのでしょうか?)
問題が何であるかは完全にはわかりませんが、関数へのポインターを構文的に渡していないという事実と関係があると思われます。
あなたが提供できる洞察を前もって感謝します。