字符串中数字元素去重

给定一个字符串,字符串是有序的整数集合,逗号相连,移除相同的数字,使每个数字只出现一次
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
typedef struct node
{
	char crr[32];
	struct node* next;
}link;
link* head()//创建头节点
{
	link*p=(link*)malloc(sizeof(link));
	strcpy(p->crr,"-1");
	p->next=NULL;
	return p;
}
int add(link*p,char* arr)//入表
{
	link*ptem=p;
	while(ptem->next!=NULL)//将指针移动到要最后节点
	{
		ptem=ptem->next;
	}
	   if(strcmp(ptem->crr,arr)==0)//将最后节点数据和传入数据对比,如果相同则不入
	   {
	   return 0;
	   }
	link*pnew=(link*)malloc(sizeof(link));//节点放在链表最后
	strcpy(pnew->crr,arr);
	ptem->next=pnew;
	pnew->next=NULL;
	return 0;
}
int main()
{
	char str[128]={0},arr[32]={0};
		link*p=head();
		 link*ptemp=p;
	scanf("%s",str);

	int i,j,k=0;
	for(i=0;str[i]!='\0';i++)
	{
		j=0;
		while(str[i]!=','&&str[i]!='\0')//将一段数字暂时存放在arr
		{
			arr[j]=str[i];
			j++;
			i++;
		}
		add(p,arr);
	}
	while(ptemp->next!=NULL)//遍历打印测试(可以遍历输出最后结果,相当于是对这个题的拓展了)
	{
        k++;
		ptemp=ptemp->next;
		//printf("%s\n",ptemp->crr);
	}
    printf("%d\n",k);
	return 0;
}


#打工人不该被pua##学习路径#
全部评论

相关推荐

头像
04-09 14:29
Java
点赞 评论 收藏
转发
1 收藏 评论
分享
牛客网
牛客企业服务