【发布时间】:2013-04-28 01:29:21
【问题描述】:
我正在编写自己的追加函数,使用静态字符缓冲区 [50] 将字符串数组 2 的动态字符数组追加到字符串数组 1 的另一个动态字符数组的末尾。但是编译器会产生以下错误:[Error] incompatible types in assignment of 'char' to 'char[50]'。我试图找出问题所在,但我似乎没有找到解决方案。您的帮助将不胜感激。我正在使用 Dev-C++。代码如下。
#include <iostream>
using namespace std;
char *Appendstring(char *a, char *b) // will append b to the end of a
{
static char buffer[50];
char *p=buffer=*a++; //[Error] incompatible types in assignment of 'char' to 'char[50]'
//[Error] invalid conversion from 'char*' to 'char'[-fpermissive]
p--;
while(*p++=b++);
p--; //append
while(*p++=*c++);
return buffer;
}
int main ()
{
string str="Displaying: ";
string add=" Summer is coming";
Appendstring(str, add);
return 0;
}
【问题讨论】:
-
好的,但为什么不使用
operator +=代替std::strings? -
重新实现字符串类及其成员是学习低级语言(如 C 或 C++)的常用方法。我不认为指出所描述的任务有一个操作员以消除问题的相关性。
标签: c++ arrays function dynamic append