69,371
社区成员
发帖
与我相关
我的任务
分享
Status SubString(HString *Sub, HString T, int pos, int len) {
int i;
if(pos < 1 || pos > StrLength(T) || len < 0 || len > StrLength(T) - pos + 1) {
return ERROR;
}
if((*Sub).ch) {
free((*Sub).ch);
}
(*Sub).ch = (char *) malloc(len * sizeof(char));
if(!(*Sub).ch) {
exit(OVERFLOW);
}
for(i = 0; i < len; i++) {
(*Sub).ch[i] = T.ch[pos + i - 1];
}
(*Sub).ch[i] = '\0';
(*Sub).length = len;
return OK;
}
void main() {
int i;
HString S1, Sub;
char *SS1 = "beijing";
InitString(&Sub);
InitString(&S1);
StrAssign(&S1, SS1);
SubString(&Sub, S1, 1, 3);
for(i = 0; Sub.ch[i] != '\0'; i++) {
printf("%c", Sub.ch[i]);
}
}