回 帖 发 新 帖 刷新版面

主题:[原创]这是个串的赋值的原代码,编译通过!出不来结果!!为什么??

#include <stdio.h>
#include<string.h>
#include <malloc.h>
#define OK 1
#define ERROR 0
typedef int Status;
typedef struct
{char *ch;//若是非空串,则按串长分配存储区,否则 ch 为NULL
 int length;
}HString;
HString *T;
//-----------------------基本操作----------------------------------
Status StrAssign(HString *T,char *chars)
{//生成一个其值等于串常量chars的串T
 int i,j; 
 if(T->ch) free(T->ch);
 i=strlen(chars);
 if(!i){T->ch=NULL;T->length=0;}
 else
 {T->ch=(char*)malloc(i*sizeof(char));
 if(!T->ch) return ERROR;
  for(j=0;j<i;j++) T->ch[j]=chars[j]; 
  T->ch[j]='\0';
  T->length=i;}
 return OK;
}//StrAssign
main()
{
int i;

char *s,c[10];
printf("请输入一个字符串:");
s=gets(c);
printf("%s",s);
StrAssign(T,s);
printf("\n请输出该字符串:");
for(i=0;i<T->length;i++)
printf("%c",T->ch[i]);
return 1;
}[em18]

回复列表 (共2个回复)

沙发

main()
{
int i;

char *s,c[10];
printf("&Ccedil;&euml;&Ecirc;&auml;&Egrave;&euml;&Ograve;&raquo;&cedil;&ouml;×&Ouml;·&ucirc;&acute;&reg;&pound;&ordm;");
s=gets(c);
printf("%s",s);

T = new HString;  // 得先让T指向一个确定的空间(初始化)
T->ch = NULL;     // 初始化ch成员变量为空
StrAssign(T,s);
printf("\n&Ccedil;&euml;&Ecirc;&auml;&sup3;&ouml;&cedil;&Atilde;×&Ouml;·&ucirc;&acute;&reg;&pound;&ordm;");
for(i=0;i<T->length;i++)
printf("%c",T->ch[i]);
return 1;
}

板凳

thank y ou

我来回复

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