【发布时间】:2012-08-10 20:56:10
【问题描述】:
我知道一个字符串连接问题在 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;
}
我做错了什么?
【问题讨论】:
-
我想你忘了用 c :)
-
我确实打算使用'c',但我发现它是一个不必要的变量:) 只是忘了我已经声明了它。