C++循环添加字符串
#include<iostream> #include<string> using namespace std; const int PROFIX=2; char *newstr(char *str,char *seg,const int len) { int i; for(i=0;i<len;++i) str[i]='A'+rand()%26; str[i+1]='\0'; return strcat(str,seg); //该函数调用后seg指向新的字符数组的尾部,str指向字符数组的头部 //例如seg指向'abc'的a,str指向'PH'的P,之后str指向P,seg指向c //因为错把str当成新字符数组的指针,浪费了3个小时! } void main() { char buffer[1024]; cout<<"请输入原始报文:"<<endl; cin.get(buffer,1024); char preSix[PROFIX+1]; char *seg=buffer; char *segSix=newstr(preSix,seg,PROFIX); cout<<"第六层报文:"<<segSix<<endl; char preFive[PROFIX+1]; char *segFive=newstr(preFive,preSix,PROFIX); cout<<"第五层报文:"<<segFive<<endl; char preFour[PROFIX+1]; char *segFour=newstr(preFour,preFive,PROFIX); cout<<"第四层报文:"<<segFour<<endl; char preThi[PROFIX+1]; char *segThi=newstr(preThi,preFour,PROFIX); cout<<"第三层报文:"<<segThi<<endl; char preSec[PROFIX+1]; char *segSec=newstr(preSec,preThi,PROFIX); cout<<"第二层报文:"<<segSec<<endl; char preFir[PROFIX+1]; char *segFir=newstr(preFir,preSec,PROFIX); cout<<"第一层报文:"<<segFir<<endl; }
现在还没有循环好!