我正在尝试编写一个从字符串中提取多个字符并将其分配给另一个字符串的函数。
编码:
// 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[]);
是“期待一个表达式”,它不会让我编译。
我很困惑,因为我的函数没有返回任何值(它在自身内部进行字符串赋值,因为它是一个字符串,这不意味着指针被传递给函数吗?在这种情况下,这并不意味着字符串本身正在被修改而不是本地副本?如果正在修改原始字符串,为什么我必须返回一个值?)
我不完全确定问题出在哪里,尽管我怀疑这与我没有在语法上将指针传递给我的函数这一事实有关。
提前感谢您提供的任何见解。