首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

用串实现求子串的效果,运行时只能输出一个元素,求解释?该怎么解决

2014-04-30 
用串实现求子串的效果,运行时只能输出一个元素,求解释?#include#include#include

用串实现求子串的效果,运行时只能输出一个元素,求解释?
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#include<string.h>
#define MAXSTRLEN 255
#define ERROR 0
#define OK 1
typedef struct
{
char *ch;
int length;
}HString;
typedef int Status;
Status SubString(HString &Sub,HString S,int pos,int len)
{
if (pos<1 || pos>S.length || len<0 || len>S.length-pos+1)
return ERROR;
if(Sub.ch)
free(Sub.ch);
if (!len)
{
Sub.ch=NULL;
Sub.length=0;
}
else
{
Sub.ch=(char*)malloc(len*sizeof(char));
{
for(int i=0;i<=len-1;i++);
{
Sub.ch=(char*)malloc(len*sizeof(char));
Sub.ch[i]=S.ch[pos-1];
pos++;
printf("%c",Sub.ch[i]);
}
Sub.length=len;
}
return OK;
}
}
void main()
{
int len,pos;
HString Sub,S;
S.ch=(char*)malloc(MAXSTRLEN*sizeof(char));
  Sub.ch=(char*)malloc(MAXSTRLEN*sizeof(char));
printf("请输入串S:");
scanf("%s",S.ch);
S.length=strlen(S.ch);
printf("请输入pos的值:");
  scanf("%d",&pos);
  printf("请输入len的值:");
  scanf("%d",&len);
SubString(Sub,S,pos,len);
}
用串实现求子串的效果,运行时只能输出一个元素,求解释?

[解决办法]
for(int i=0;i<=len-1;i++);
{
Sub.ch=(char*)malloc(len*sizeof(char));
Sub.ch[i]=S.ch[pos-1];
pos++;
printf("%c",Sub.ch[i]);
}
这个位置写错了 for后面不应该有;而且你不断地重新在分配内存。

热点排行