我必须创建一个返回指向子字符串的char指针的函数。子字符串由两个指针给出,一个用于子字符串的开头,另一个用于结束。此子字符串小于start指向的原始字符串。
char* get_substring(char* start, char* end)
int main(int argc, char* argv[])
{
char stringtest[] = "ABCDE";
char* pos1 = stringtest;
char* pos2 = stringtest+3;
char* test = get_substring(pos1, pos2);
printf("%s", test);
return 0;
}
char* get_substring(char* start, char* end)
{
int i = &end - &start;
char* buffer = (char *)malloc(sizeof(char) * 100);
for(int x=0; x < i; x++)
{
*(buffer+x) = *(start+x);
}
*(buffer+i) = '\0';
return buffer;
}
任何帮助非常感谢:)
答案 0 :(得分:2)
执行char pos1 = stringtest[0];
时,您将第一个字符复制到新变量pos1
中。当您获取pos1
的地址时,您正在使用该新变量的地址和副本。您需要做的是通过执行&stringtest[0]
。
答案 1 :(得分:0)
在buffer[10]
char buffer[10];