鱼C论坛

 找回密码
 立即注册
查看: 2049|回复: 4

[已解决]可变长数组

[复制链接]
发表于 2022-11-10 15:25:04 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include<stdio.h>

int main()
{
        int n,i;
        printf("请输入字符的个数:");
        scanf("%d",&n);
       
        char a[n+1];           \\这一段不明白,n+1有什么作用在这里
        printf("请开始输入字符:");
        getchar();
        for(i=0;i<n,i++)
        {
                scanf("%c",&a[i]);
        }
        a[n]='\0';          \\这一段也不明白
        printf("你输入的字符是:%s",a);
       
        return 0;
}
最佳答案
2022-11-10 16:07:17
本帖最后由 jackz007 于 2022-11-10 16:10 编辑
学不死就死里xue 发表于 2022-11-10 15:59
懂了 大佬
就是这个char a[n+1]不管他加一万一千都没关系是不是 他只是定义一个内存
这个a[n]='\0'还是 ...


        比如,你输入了 n = 8,那么,会定义一个拥有 9 个元素的一维数组 a[9],在你输入了 8 个字符后,a[0] ~ a[7] 都是你输入的字符,这时,让 a[8] = '\0',那么,字符串 a 就诞生了,你可以用 printf("%s" , a) 直接把这个字符串打印出来。
        当你自己炮制字符串的时候,在最后那个字符的后面添加字符串结束标志字符 a[n] = '\0' 非常重要,必须要有,如果不懂,那就死记!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-11-10 15:27:25 | 显示全部楼层
字符串一般都是以'\0'为结束标志,所以空字符串就是一个'\0'字符
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-10 15:36:09 | 显示全部楼层
本帖最后由 jackz007 于 2022-11-10 15:40 编辑
        char a[n+1]; // 定义 a 为可以容纳 n + 1 个字符的字符数组,可以用于存储一个最长有 n 个字符的字符串
. . . . . .
        a[n]='\0' ;  // 设置一维字符数组 a 最后一个元素为字符串结束标志 '\0',这是操作系统所要求的,操作系统需要根据这个结束字符来确定字符串的长度
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-11-10 15:59:41 | 显示全部楼层

懂了 大佬
就是这个char a[n+1]不管他加一万一千都没关系是不是 他只是定义一个内存
这个a[n]='\0'还是不懂  比如我定义n是2个 那这样不就把我第二个元素换了吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-10 16:07:17 | 显示全部楼层    本楼为最佳答案   
本帖最后由 jackz007 于 2022-11-10 16:10 编辑
学不死就死里xue 发表于 2022-11-10 15:59
懂了 大佬
就是这个char a[n+1]不管他加一万一千都没关系是不是 他只是定义一个内存
这个a[n]='\0'还是 ...


        比如,你输入了 n = 8,那么,会定义一个拥有 9 个元素的一维数组 a[9],在你输入了 8 个字符后,a[0] ~ a[7] 都是你输入的字符,这时,让 a[8] = '\0',那么,字符串 a 就诞生了,你可以用 printf("%s" , a) 直接把这个字符串打印出来。
        当你自己炮制字符串的时候,在最后那个字符的后面添加字符串结束标志字符 a[n] = '\0' 非常重要,必须要有,如果不懂,那就死记!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-10 09:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表