我试图从用户提示符处开始一个字符串数组,并命名该数组。无论我怎么写,我都会不断出错。我不确定是否需要在[]中添加虚拟数字。

    do
    {
        printf("What is your name?\n");
        char str[] = get_string(); 'error: array initializer must be an initializer list or string literal'
    }
    while (namelen[i] = int); //error: use of undeclared identifier 'namelen'
char str[49] = namelen;  //error: use of undeclared identifier'namelen'

最佳答案

可以将循环与功能分开。您一遍又一遍地声明namelen,但仅在循环内部声明。循环外将无法使用。您的条件namelen[i] = int也不是实际条件。您是否要在namelen[i]是整数的情况下使循环继续运行?由于intchar不同,因此没有任何意义。

我认为您需要澄清您的问题和代码。很难说出您要在这里做什么。

如果我不得不猜测,您希望代码与以下内容更加一致:

int main(void)
{
    char namelen[49];
    printf("What is your name?\n");
    gets(namelen);

    printf(namelen);
}

10-06 10:49