ユーザーに名前、名前の順に入力するように求めるプログラムを作成します。このプログラムは、ユーザーの名前の後にコンマ、スペース、名を続けた3番目の文字列を作成、保存、表示します。 cstringヘッダーファイルのchar配列と関数を使用します。実行例は次のようになります。名を入力してください:Flip姓を入力してください:Fleming単一の文字列の情報は次のとおりです:Fleming、Flip
int main()
{
char * fName,*lName,*fullName;
fName = new char;
cin.getline(fName,100);
lName=new char;
cin.getline(lName,100);
fullName=new char[strlen(lName)+strlen(fName)+3];
strncpy(fullName,lName,strlen(lName));
fullName[strlen(lName)]=',';
fullName[strlen(lName)+1]=' ';
char* dummy=(char*)fullName[strlen(lName)+2];//making a pointer to the char after the ' ' char to start copying the first name
strncpy(dummy,fName,strlen(fName));
dummy[strlen(fName)+strlen(lName)+2]='\0';
cout<<endl<<endl<<dummy<<endl;
delete fullName;
delete lName;
delete fName;
return 0;
}
配列の途中で文字をポイントしてコピーを開始するとクラッシュするのはなぜですか?