我写了一个MyStrcpy函数,具体如下:#include <iostream> using namespace std;void MyStrcpy(char *s2, char *s1){while(*s1){*s2 = *s1;s2++;s1++;}*s2 = '\0';}int main() { char s1[] = "12345678";char s2[8] ={0};MyStrcpy(s2, s1);cout << s2 << endl;return 0;}但是如果改成#include <iostream> using namespace std;int main() { char s1[] = "12345678";char s2[8] ={0};while(*s1){*s2 = *s1;s2++;s1++;}*s2 = '\0';cout << s2 << endl;return 0;}会报错:错误为error C2105: '++' needs l-value当然s2输出也不对,求教原因.
1 回答
临摹微笑
TA贡献1982条经验 获得超2个赞
char s1[] = "12345678";说明 s1是数组名, 数组名是常量, 不能够进行后面的s1++这种自增操作的, 如果想的话, 可以
char* temp = s1;
然后
while(*temp)
{
*s2 = *temp;
s2++;
temp++;
}
- 1 回答
- 0 关注
- 707 浏览
添加回答
举报
0/150
提交
取消