永发信息网

C语言 链表实现 字符串的 插入 与 删除 ??

答案:3  悬赏:50  手机版
解决时间 2021-02-23 01:21
  • 提问者网友:你独家记忆
  • 2021-02-22 13:29
不是说,链表实现 插入 结点的操作 ,挺简单 嘛 。。。 假设, 我 建立 了 一个 链表 , 他的 数据 域 都是 字符类型的 .. 现在 ,假设 有 一个 字符串 arut35yfkk7i654yy 凡是 “数字”之后,都 插入 一个 “空格”,则原来的字符串变成 arut3 5 yfkk7 i6 5 4 yy 求 具体 实现 ?
最佳答案
  • 五星知识达人网友:冷風如刀
  • 2021-02-22 14:18
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define MAX 100
struct node
{
char c;
struct node *next;
}w;
typedef struct node node;
typedef node *index;
///////////////////////
index list(char *s)
{
index head,q,p;
int i,n;
n=strlen(s);
if (n<=1) return NULL;
else if (n>1)
{
p=(index)malloc(sizeof(node));
p->c=s[0];
head=q=p;
for (i=1;i<n;i++)
{
p=(index)malloc(sizeof(node));
p->c=s[i];
q->next=p;
q=p;
}
}
q->next=NULL;
return head;
}
///////////////////
void main()
{
char s[MAX];
index head,p,tp,q;
int n,i=-1;
n=strlen(gets(s));
head=NULL;
head=list(s);
p=head;
if (p!=NULL)
{
while (p!=NULL)
{
i++;
if (p->c>='0' && p->c<='9')
{
tp=(index)malloc(sizeof(node));
tp->c=' ';
q=p->next;
p->next=tp;
tp->next=q;
p=tp;
if (i==n-1) {p->next=NULL;break;}//作用是当示字符串是数字是以NULL口中止
}
p=p->next;
}
}
while (head!=NULL)
{
printf("%c",head->c);
head=head->next;
}
printf("\n");
}
全部回答
  • 1楼网友:三千妖杀
  • 2021-02-22 16:28
定义另一个字符串,长度增加,,,,拷贝到另一个字符串,同时插入空格 ~~~~~~~
  • 2楼网友:冷風如刀
  • 2021-02-22 15:39
#include <stdio.h> #include <math.h> typedef struct _list { char v; struct _list* next; } *node, **list; node insert( list l, node t, char v ) { node tmp; tmp = ( node )malloc( sizeof( _list ) ); tmp->v = v; tmp->next = t ? t->next : NULL; return ( *l ? t->next : *l ) = tmp; } int main() { node h, t; char c; h = t = NULL; while ( ( c = getchar() ) != '\n' ) { t = insert( &h, t, c ); t = insert( &h, t, ' ' ); } while ( h ) { putchar( h->v ); t = h; h = h->next; free( t ); } }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯