在编程珠玑上看见的,感觉比较巧妙,利用指针的特性。
#include<iostream>
#include<cstdio>
#include<cstdlib>
#define MAXN 5000000
using namespace std;
char c[MAXN],*a[MAXN];
int main(){
char ch;
int n=0;
while((ch = getchar())!=EOF){
a[n]=&c[n]; //地址传递,这里比较巧妙细细体会,就像我们平时直接用下标为0的数组那样的
c[n++]=ch;
}
c[n]=0;
for(int i=0; i<n; i++)
cout<<a[i]<<endl;
return 0;
}