可变长数组
#include<stdio.h>int main()
{
int n,i;
printf("请输入字符的个数:");
scanf("%d",&n);
char a; \\这一段不明白,n+1有什么作用在这里
printf("请开始输入字符:");
getchar();
for(i=0;i<n,i++)
{
scanf("%c",&a);
}
a='\0'; \\这一段也不明白
printf("你输入的字符是:%s",a);
return 0;
} 字符串一般都是以'\0'为结束标志,所以空字符串就是一个'\0'字符 本帖最后由 jackz007 于 2022-11-10 15:40 编辑
char a; // 定义 a 为可以容纳 n + 1 个字符的字符数组,可以用于存储一个最长有 n 个字符的字符串
. . . . . .
a='\0' ;// 设置一维字符数组 a 最后一个元素为字符串结束标志 '\0',这是操作系统所要求的,操作系统需要根据这个结束字符来确定字符串的长度 jackz007 发表于 2022-11-10 15:36
懂了 大佬
就是这个char a不管他加一万一千都没关系是不是 他只是定义一个内存
这个a='\0'还是不懂比如我定义n是2个 那这样不就把我第二个元素换了吗 本帖最后由 jackz007 于 2022-11-10 16:10 编辑
学不死就死里xue 发表于 2022-11-10 15:59
懂了 大佬
就是这个char a不管他加一万一千都没关系是不是 他只是定义一个内存
这个a='\0'还是 ...
比如,你输入了 n = 8,那么,会定义一个拥有 9 个元素的一维数组 a,在你输入了 8 个字符后,a ~ a 都是你输入的字符,这时,让 a = '\0',那么,字符串 a 就诞生了,你可以用 printf("%s" , a) 直接把这个字符串打印出来。
当你自己炮制字符串的时候,在最后那个字符的后面添加字符串结束标志字符 a = '\0' 非常重要,必须要有,如果不懂,那就死记!!!
页:
[1]