SEで文字列連結の質問が死ぬまで尋ねられたことを私は知っています。しかし、私の知る限り、役に立ちそうなすべての質問に答えましたが、無駄でした。
これは、私がこのプログラムで達成したいと思っていることです:
最初は、それぞれ n=0 と n=1 に対して、a=0 と b=1 があります。
次の入力、つまり n=3 以降では、結果は前の 2 つの文字列の連結になります。(フィボナッチ数列のように、加算のみが連結に置き換えられます)
たとえば、
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;
}
私は何を間違っていますか?