锯齿数组(动态开辟空间)
2013-05-20 17:30 夏洛克·福尔摩斯 阅读(258) 评论(0) 编辑 收藏 举报#include<stdio.h>
#include<stdlib.h>
#include<memory.h>
#include<string.h>
#define MAXSIZE 100
char string[MAXSIZE];//设置一个静态数组,保存输入量
char **str; //指向指针的指针
char *strdup(char str[],int j);//动态分配函数
int i;//全局变量i
int main()
{
printf("please input the line of you output:");
scanf("%d",&i);//输入你想显示多少行
str=(char **)malloc(sizeof(char)*i);//给指针的指针分配一个行空间(代表有多少行)
int j=0,k;
for(;j<i;j++)
{
scanf("%s",string);//输入你要显示的字符串
strdup(string,j);//j代表某一行
}
for(k=0;k<j;k++)
printf("%s\n",*(str+k));//输出字符串
return 0;
}
char *strdup(char string[],int j)
{
*(str+j)=(char *)malloc(sizeof(char)*(strlen(string)));//为某一行开辟一个和输入的string相同长度的空间
strcpy(*(str+j),string);//复制字符串
return *(str+j);//返回
}