可能你不明白,举例说一下, 申请了一个数组,a[3],有三个元素的度位置 那么当三个字符都填充到这三个单元的时候,就是如xyz三个字符a[0]=‘x’,a[1]=‘y’,a[2]=‘z’ 那么a这个数组将没有\0的空间, 这样是可以的, 但是要是用字符串处理函数,如道puts,strcpy等函数的时候,这样的数组是不能当字符...
*/intmain(){//字符数组方式charc01[3] = {'m','e','\0'};//字符串charc02[3] ="me";inti =0;//打印字符数组printf("sizeof(c01) = %d\n",sizeof(c01));for(i =0; i <sizeof(c01); ++i) {printf("c01[%d] = %c\n", i, c01[i]); }printf("c01 = %s\n\n", c01);/...
如果要将整个数组的每一个成员都设置为零,最简单的写法就是下面这样,char数组比较特殊,会自动填充'\000' inta[100] = {0}; 数组初始化时,可以指定为哪些位置的成员赋值。 inta[15] = {[2] =29, [9] =7, [14] =48}; 上面示例中,数组的2号、9号、14号位置被赋值,其他位置的值都自动设为0。 指...
// C 风格输入字符数组,加输入长度限制,以避免越界 void testCStyleFormatIO() { char c = '$'; printf("c = %c\n", c); char name[10]; // 最多9个字母,+1 结束符 '\0' int age; printf("please input your name: "); scanf("%9s", name); // 加了 9 printf("please input your...
数组的下标(序号)是从0开始的 访问数组时必须做边界检查。例如数组a的长度为5,则使用a[5]访问是错误的。a[5]表示的是数组的第6个元素,访问超出数组长度的元素会导致程序异常退出。如果数组长度是n,则当a[i]访问时,应当保证i < n 字符与字符串
C 语言字符串 C 语言的字符串是以空终止符 \0 结尾的字符数组。在 C 语言操作字符串时,空终止符会告诉函数已到达字符串的末尾。在 C 中,我们可以通过两种不同的方式声明一个字符串。第一种也是最困难的方法是定义字符数组。#include<stdio.h>intmain(){char myString[] = {'H', 'e', 'l', 'l'...
1)源字符串必须以 '\0' 结束; 2)该函数会将源字符串中的'\0'一同拷贝到目标空间,如果目标字符串原先就有内容,就会被拷贝的内容覆盖掉,包括'\0'也是; 3)目标空间必须足够大,以确保能存放源字符串,如果放不下就会造成数组越界访问,为非法访问空间; 4)目标空间必须可变,不能是常量字符串。
例子2:输入字符串 #include<stdio.h>int main(){char a[20] = { 0 };char b[20] = {0};int ret = scanf("%s %s",&b,&a);//最好有空格隔开printf("%d\n", ret);return 0;} 还需要注意的就是,&是取地址的意思,而对数组输入的时候,因为数组名就是首地址,所以不需要加&。当然,怕出现错误...