回 帖 发 新 帖 刷新版面

主题:一个串的基本操作遇到问题

#include <iostream.h>
#define MAX 255    //定义线性表的最大长度
typedef char  SString[MAX+1];       //0号位置放长度
void CreatString(SString &S)//输入并建立顺序存储的字符串S
{
    int k;
    cout<<"输入长度:";
    cin>>k;
    int i=0;
    S[0]=k;
    for(;i+1<=256;i++)S[i+1]='\0';
    cout<<"输入串"<<endl;
    for(i=1;i<=k;i++)cin>>S[i];
    cout<<S<<endl;
}

void main()
{
    SString SA;
    CreatString(SA);
    SString SB;
    CreatString(SB);
cout<<int(SA[0]);
}



我的问题是 为什么创建串SB了以后 SA[0]就变成0了啊 完全不明白

回复列表 (共2个回复)

沙发

typedef char  SString[MAX+1];       //0号位置放长度
这是什么意思,和你想的应该有差距,换成其他的定义方式把。
感觉是这个问题,具体我也不知道了

板凳

void CreatString(SString &S)//输入并建立顺序存储的字符串S
{
    int k=0,i;
    for(i=0;i<256;i++)
        S[i]='\0';
    cout<<"输入长度:";
    cin>>k;
    S[0]=k;
    cout<<"输入串"<<endl;
    for(i=1;i<=k;i++)
        cin>>S[i];
    cout<<S<<endl;
}
搞定了。但我也很无语
兄弟,书写也是个大问题啊。

我来回复

您尚未登录,请登录后再回复。点此登录或注册