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;

}

现在还没有循环好!

posted @ 2013-03-21 16:41  开心成长  阅读(1708)  评论(0编辑  收藏  举报