这里我的错误是什么?我很困惑将指针用作函数。
#include<iostream>
using namespace std;
char *strcpy(char *, const char *); // string copy
int main()
{
char string1[20] = "Priteh Taral";
char string2[20];
char *result;
result = strcpy(string2, string1);
cout << *result << " ";
}
char *strcpy(char *ptr2, const char *ptr1)
{
while(*ptr1 != '\0')
{
*ptr2++ = *ptr1++;
}
*ptr2 = '\0';
return &ptr2;
}
如何将字符串作为指针返回?
答案 0 :(得分:1)
实际上,strcpy看起来应该更像这样:
char *strcpy(char *ptr2, const char *ptr1)
{
char *base = ptr2;
while ((*ptr2++ = *ptr1++) != '\0')
;
return base;
}
该函数(在标准中)将返回ptr2(目标)的原始值。此外,将'\ 0'与循环中的其他所有内容一起复制更为简单。
答案 1 :(得分:0)
只需返回ptr2
。
ptr2
已经是一个指针。当你告诉它返回&ptr2
时,你要求**char
,这是一个指向char指针的指针。这不是你想要的。