问题:输入一个整型数,然后申请对应大小空间内存,然后读取一个字符串,字符串的输入长度小于最初输入的整型数大小,最后输出输入的字符串即可
测试输入:
10
hello
还可以这样写吗? 这样可以运行
scanf("%s",p);
puts(p);
问题:输入一个整型数,然后申请对应大小空间内存,然后读取一个字符串,字符串的输入长度小于最初输入的整型数大小,最后输出输入的字符串即可
测试输入:
10
hello
还可以这样写吗? 这样可以运行
scanf("%s",p);
puts(p);
两个问题,一是scanf语句用%s接收的字符串,遇到空格就结束,所以字符串不能含空格,建议使用gets,直接接收一行,遇到换行符结束
二是printf输出字符串,参数应该是个数组名或字符串首地址,你写成*p的话,就是p字符串第一个字符的意思,这是不对的。gets输入的话,可以用对应的puts输出
#include <stdio.h>
int main()
{
int n;
scanf("%d",&n);
char *p = (char*)malloc(n * sizeof(char));
gets(p);
puts(p);
}