一、C语言中,比如一个字符串长度是10,如果存储长度不足10那么在右边补充空格,而且存储内容不定长Chara[]={1,2,3,4};
printf("%-10s",a);//%10表示以10的宽度输出,如果小于10位数字,填空。“-”表示字符将字符串左对齐
//也可以尝试printf("%10s",a);
![](https://img0.baidu.com/it/u=3045371136,585222040&fm=253.jpg)
二、C语言字符串越界问题。我申请10个字符空间,用scanf输入了15个字符,怎么没崩溃呢?你定义的是一个指针,而不是一个数组。尽管指针和数组看起来使用方式相同,但实际上它们有很大不同。数组的变量存储空间是在确定的时候分配的,而指针则一直在读写,所以只要后面有读写,就会继续读取。这样理解的话,多余的也一定会占用存储空间。如果里面的数据被异常调用,这个存储空间可能不会被使用或者被使用。此外,当您重新扩展数组的范围时,可能会出现异常。
你会看到:char*str1;sizeof(str1)的值始终为4且charstr1[10];sizeof(str1)的值始终为10,这就是原因。