char 配列の表示が短い数文字である理由が気になります。ただし、length+2 を使用すると、すべての文字が表示されます。何が間違っているのかわかりません。あなたの助けに感謝します。Dev-C++ を使用しています
#include <iostream>
#include <string.h>
using namespace std;
char *Appendstring(char *a, char *b, char *c, char *d, char *e) // will append b to the end of a
{
// char *buffer = new char[strlen(a)+strlen(b)+1];
static char buffer[90];
char *p=buffer;
while(*p++=*a++); // Copy a into buffer
while(*p++=*b++); // Copy b into buffer right after a
while(*p++=*c++); // Copy c into buffer right after b
while(*p++=*d++); // Copy d into buffer right after c
while(*p++=*e++); // Copy e into buffer right after d
*p=0; // Null-terminate the string
return buffer;
}
int main ()
{
char *new_string;
int length;
char *str="Because";
char *add="it has been";
char *addstr1="very warm";
char *addstr2="lately";
char *addstr3="Summer is coming!";
length=strlen(str)+strlen(add)+strlen(addstr1)+strlen(addstr2)+strlen(addstr3)+1; //total length of the new string
new_string=Appendstring(str, add, addstr1, addstr2, addstr3);
for (int i=0; i<=length+2; i++) //Why do I need to do length+2 to have all characters displayed???
cout<<new_string[i];
return 0;
}