我不是忘尘 2017-10-21 05:54 采纳率: 0%
浏览 468

使用单链表实现截取子串,输出原字符串时第一个字符没有输出是怎么回事?求 解答

 #include<stdio.h>
#include<stdlib.h>
typedef struct node
{
    char ch;            //字符域
    struct node *next;  //指针域,存放下一个结点的地址
}*linkstr;
int length; 
linkstr NullString()
{   
    linkstr s;
    s=(linkstr)malloc(sizeof(node));
    if(s!=NULL)
        s->next=NULL;
    return s;
}
linkstr Push()
{   
    linkstr head;
    linkstr p1,p2;
    length=0;
    p1=p2=(linkstr)malloc(sizeof(node));
    printf("输入串:"); 
    scanf("%c",&p1->ch);
    head=NULL;
    while(p1->ch!='\n')
    {
       length++;
       if(length==1) head=p1;
       else p2->next=p1;
       p2=p1;
       p1=(linkstr)malloc(sizeof(node));
       scanf("%c",&p1->ch); 
    }
    p2->next=NULL;
    return(head);
}
int substr(linkstr s,int i,int len,linkstr t)
{
    linkstr p,q,r,u;
    if(i<=0 || i>length|| i+len-1>length )
        return 0;
    int j,k;
    for(j=0,p=s;j<i-1;j++)
        p=p->next;
    for(k=0,r=t,q=t->next;k<len;k++)
    {
        if(q!=NULL)
        {
            q->ch=p->ch;
            r=q;
            q=q->next;
        }
        else
        {
            u=(linkstr)malloc(sizeof(node));
            u->ch=p->ch;
            r->next=u;
            r=u;
        }
        p=p->next;
    }
    while(q!=NULL)
    {   
        p=q->next;
        free(q);
        q=p;
    }
    r->next=NULL;
    return 1;
}
void print(linkstr s)
{
     linkstr p=s->next;
     while(p!=NULL)
     {
        printf("%c",p->ch);
        p=p->next;
     }
     printf("\n");
}
int main()
{
    linkstr s1,s2;
    s2=NullString();
    int m,n;
    s1=Push();
    printf("截取子串:");
    scanf("%d%d",&m,&n);
    substr(s1,m,n,s2);
    print(s1);
    print(s2);
    return 0;
}
  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 delta降尺度计算的一些细节,有偿
    • ¥15 Arduino红外遥控代码有问题
    • ¥15 数值计算离散正交多项式
    • ¥30 数值计算均差系数编程
    • ¥15 redis-full-check比较 两个集群的数据出错
    • ¥15 Matlab编程问题
    • ¥15 训练的多模态特征融合模型准确度很低怎么办
    • ¥15 kylin启动报错log4j类冲突
    • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
    • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序