根据串的大小动态分配空间
// STACK.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#include<time.h>
#include<string.h>
#define N 5
struct string
{
char data[N];
string *next;
}*head=NULL;
int insert(char*data)
{
string *h1=(string *)malloc(sizeof(string));
for(int i=0;i<N;i++)
{
h1->data[i]=data[i];
}
h1->next=NULL;
if(head==NULL){head=h1;return 0;}
string *h2=head;
while(h2->next!=NULL)h2=h2->next;
h2->next=h1;
return 1;
}
int mlocnumber(int i)
{
if(i%N==0)return i/N;
else return i/N+1;
}
int save(char *str)
{int i=0;
char *str1=str;
while(*str1!='\0'){i++;str1++;}
printf("the string have %d characters\n",i);
char *str2=str;
int g=0;
char data[N];
for(int j=0;j<mlocnumber(i);j++)
{
for(int k=0;k<N;k++)
{
data[k]=str2[g];
g++;
}
insert(data);
}
return 0;
}
void disply()
{
string *h2=head;
while(h2!=NULL){
for(int i=0;i<N;i++)
{
printf("%c",h2->data[i]);
}
h2=h2->next;}putchar('\n');
}
int main()
{
char str[16]="sdfhjfffllll148";
printf("%s\n",str);
save(str);
puts("display:");
disply();
return 0;
}