c语言字符定义数组问题

问题描述:

题目中给出一个元素为n的字符数组,却又不能定义为n,并且还要判断数组长度是否符合要求,请问如何定义,并且如何判断长度,谢了

 #include <string.h>
#include <stdio.h>
void main()
{
    int n;
    char *p;
    scanf("%d",&n);
    p = new char[n];
    scanf("%s",p);

    if(strlen(p)>n-1) printf("字符串长度不符合!\n");
    else printf("%s\n",p);

    delete []p;
}

定义一个比n+1大的数组都可以。
字符数组的长度和字符串的长度是两个概念。
判断字符串的长度,就是判断从字符数组开头到遇到'\0'字符截止之前的字符的个数

题目中有没有对n的大小有限制,是否有n<=100之类的,如果有,大小为101即可,另外可以动态分配内存啊

”一个元素为n的字符数组,却又不能定义为n“,没明白这句话,不能定义n,却又要创建n的数组,那n到底是定义了还是没有定义