我知道一个字符串连接问题在 SE 中被问死了。但据我所知,我已经解决了所有可以帮助我的问题,但都是徒劳的。
这是我希望通过这个程序完成的:
最初我有 a=0 和 b=1,分别代表 n=0 和 n=1。
对于下一个输入,即从 n=3 开始,我的结果应该是前两个字符串的连接。(就像一个斐波那契数列;只有加法被串联代替)
因此,例如:
对于 n=3,我的输出应该是“10”。
对于 n=4,我的输出应该是“101”
对于 n=5,我的输出应该是“10110”
我编写的代码没有逻辑问题,但我收到 SIGSEGV 错误,我不明白为什么。
#include <iostream>
#include<new>
#include<string.h>
using namespace std;
int main()
{
long int n,i;
char *a="0";
char *b="1";
char *c=new char[100000];
cout<<"Enter a number n:";
cin>>n;
for(i=0;i<n;i++)
{
strcat(b,a);
strcpy(a,b);
}
cout<<"\nRequired string="<<b;
}
我究竟做错了什么?