#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
int n = 0;
char a;
do{
a = getchar();
n++;
}while(a != '\n');
char *p;
p = (char *)malloc(sizeof(char *) * n);
puts("请再输入一遍:");
gets(p);
printf("P:%s",p);
return 0;
}
通过计算每一个字符(以换行作为结束标志)作为数组的长度(并且这里的n已经包含'\0'的长度,直接动态申请就OK了),记得最后free一下,养成好习惯^.^
以下是运行结果