精华内容
下载资源
问答
  • 字符数组初始化为空
    千次阅读
    2019-03-02 11:14:59

    char str[1024] = {0};

    头文件为#include

    更多相关内容
  • 字符数组初始化为空

    万次阅读 2020-04-08 16:38:20
    字符数组初始化为空1. 总结起来有以下三种方式:2. 分析3. 结论 1. 总结起来有以下三种方式: (1) char str[10]=""; (2) char str[10]={’\0’}; (3) char str[10] = ‘\0’; 2. 分析 第(1)(2)种方式是将str数组的...

    1. 总结起来有以下5种方式:

    #define STR_LEN      1023
    
    (1) char str[STR_LEN + 1]="";
    (2) char str[STR_LEN + 1]={'\0'};
    (3) char str[STR_LEN + 1];
    	str[0] = '\0';
    (4) char str[STR_LEN + 1];
    	str[0] = 0;
    (5) char str[STR_LEN + 1];
    	memset(str, 0 ,sizeof(str));
    

    2. 分析

    第(1)(2)(5)种方式是整体清0了整个缓冲区,效率较低;
    如果数组的size非常大,那么这三种方式将会造成很大的开销。

    而第(3)和第(4)种方式是只将str数组的第一个元素初始化为0,效率高;

    3. 结论

    1. 效率高,使用3、4初始化;
    2. 规范,建议使用5初始化(memset)
      因为有过用3/4的方式初始化,导致后面字符未初始化,而是随机值,正好使用了这些值,打印出来也是乱码导致。

    4. 扩展:

    4.1 不使用 szName[0] = ‘0’,使用szName[0] = 0

    szName[0] = '0' ;        // Warning 4195
    Possible confuse  digit '0'  or  zero-terminate '\0'  or  letter 'O'
    //混淆数字0 和 字符串结尾字符 \0 ,建议直接使用 0 即可
    

    4.2 空字符串判断

    推荐用法:

    if (0 != pcUserName[0])          //  推荐:安全 可靠
    

    错误用法:

    if (0 == strlen(pcUserName))
    	Warning 4170 Function 'strlen' is unnecessary or duplicate
    
    if('0' == pcUserName[0])
    同上
    Possible confuse  digit '0'  or  zero-terminate '\0'  or  letter 'O'
    
    展开全文
  • 怎么把已经初始化字符数组设置为空?两种方法,如下所示。方法一:代码演示#include #include int main(void){char a[]={'x','y','z'}; //定义字符数组,并初始化int i=0;for(i=0;i<3;i++)printf("%c\t",a[i]);...

    怎么把已经初始化的字符数组设置为空?

    两种方法,如下所示。

    方法一:

    代码演示

    #include #include int main(void)

    {

    char a[]={'x','y','z'}; //定义字符数组,并初始化

    int i=0;

    for(i=0;i<3;i++)

    printf("%c\t",a[i]); //输出初始化的数组

    memset(a,'\0',sizeof(a)); //把数组设置为空

    while(i<3)

    printf("\n%c\t%c\t%c",a[i]);

    return 0;

    }

    memset相关原理

    memset是计算机中C/C++语言初始化函数。作用是将某一块内存中的内容全 部设置为指定的值,这个函数通常为新申请的内存做初始化工作。

    void *memset(void *s, int ch, size_t n);

    函数解释:将s中当前位置后面的n个字节 (typedef unsigned int size_t )用 ch 替换并返回 s 。

    memset:作用是在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零操作的一种最快方法 [1] 。

    memset()函数原型是extern void *memset(void *buffer, int c, int count) buffer:为指针或是数组,c:是赋给buffer的值,count:是buffer的长度.

    sizeof()相关原理

    在 Pascal 语言中,sizeof() 是一种内存容量度量函数,功能是返回一个变量或者类型的大小(以字节为单位);在 C

    语言中,sizeof() 是一个判断数据类型或者表达式长度的运算符。 在Pascal 语言与C语言中,对 sizeof()

    的处理都是在编译阶段进行。

    方法二:

    代码演示

    #include #include int main(void)

    {

    char a[]={'x','y','z'}; //定义字符数组,并初始化

    int i=0;

    for(i=0;i<3;i++)

    printf("%c\t",a[i]); //输出初始化的数组

    bzero(a,sizeof(a)); //把数组设置为空

    while(i<3)

    printf("\n%c\t%c\t%c",a[i]);

    return 0;

    }

    bzero相关原理

    置字节字符串前n个字节为零且包括‘\0’。

    原型:extern void bzero(void *s, int n);

    参数说明:s 要置零的数据的起始地址; n 要置零的数据字节个数。

    用法:#include 功能:置字节字符串s的前n个字节为零且包括‘\0’。

    说明:bzero无返回值,并且使用string.h头文件。

    sizeof()相关原理

    在 Pascal 语言中,sizeof() 是一种内存容量度量函数,功能是返回一个变量或者类型的大小(以字节为单位);在 C

    语言中,sizeof() 是一个判断数据类型或者表达式长度的运算符。 在Pascal 语言与C语言中,对 sizeof()

    的处理都是在编译阶段进行。

    展开全文
  • 字符数组初始化

    千次阅读 2021-08-27 13:19:38
    编程良好习惯:定义char型数组时赋初值'\0' 原因:当数组定义不赋值时,不同编译器这个... 当采用这种方式初始化时,要注意等号后面的字符串长度要小于(等于也不行)字符数组元素个数。 比如array[20]代表数...

    编程良好习惯:定义char型数组时赋初值为'\0'

    原因:当数组定义不赋值时,不同编译器为这个数组定义的初值也不确定,即使在后面的程序中对这个数组的部分元素进行的赋值,当cout打印这个数组时可能会打印出乱码

    例:char array[10] = {'\0'}

    char型数组在定义时初始化:

    1. char array[20] = "Hello World!";

        当采用这种方式初始化时,要注意等号后面的字符串长度要小于(等于也不行)字符数组元素个数。

        比如array[20]代表数组元素个数为20,"Hello World!"的长度为12. gcc编译器在编译时会依次把""中的字符串按单个字符对数组进行赋值,并以'\0'做为最后一个字符赋值给数组,剩余的数组元素赋为初始值'\0',所以这里array的大小最小为13。

    2. char array[] = "Hello World!"

        这种方式的初始化编译器会根据字符串自动判断array数组的大小,上面的例子中 array元素个数为13.

       如果单纯定义char array[]; gcc编译并不会报错,用sizeof显示这个数组大小为0,所以这样定义数组没有任何意义。

    双引号""只能用于字符数组的初始化中,在后面的单个元素赋值时只能用单引号''。

    展开全文
  • java代码-例子4-7 用字符数组初始化String对象
  • 一、字符数组的定义和初始化 字符数组初始化,最...若小于数组长度,则只将这些字符数组中前面那些元素,其余的元素自动定为空字符(即'\0')。 如char str[10] = {'\0'}; //结果里面元素全都为\0.其实这样赋值只是
  • C 字符数组初始化问题

    千次阅读 2021-05-19 09:29:16
    1、定义的时候直接用字符串赋值char a[10]="hello";注意:不能先定义再给它赋值,如char a[10]; a[10]="hello";这样是错误的!2、对数组中字符逐个赋值char a[10]={'h','e','l','l','o'};3、利用strcpychar a[10]; ...
  • 很清楚展现了数组的定义, 初始化, 输入和输出 ,字符数组的应用,以及多维数组应用。
  • (C++)字符数组初始化的两种方法

    千次阅读 2021-03-19 19:32:10
    //字符数组的两种赋值方法 int main(){ //1.方法一 char str1[14] = {'I',' ','l','o','v','e',' ','m','y',' ','m','o','m','.'}; for(int i = 0;i<=13;i++){ printf("%c",str1[i]); } printf("\n...
  • C语言中字符数组初始化的几种方法

    万次阅读 多人点赞 2019-04-14 16:39:30
    1.C语言中的字符数组初始化 在C语言中,字符串是当做字符数组来处理的;所以字符串有两种声明方式,一种是字符数组,一种是字符指针。 1.1 直接逐个初始化字符数组:字符数组的初始化,最容易理解的方式就是逐个...
  • 二维字符数组的定义,初始化

    千次阅读 2021-01-14 17:57:26
    因为每次初始化字符数组的时候都有点问题,所以特意发一篇博客提醒一下自己。 二维字符数组的定义 二维字符数组的定义格式: char 数组名[第一维大小][第二维大小]; 如: char c[3][10]; //定义了一个3行10列的二...
  • C语言字符数组初始化

    2011-01-26 21:04:30
    C语言字符数组初始化经典相关资料,涉及字符的详细介绍,字符串数组的介绍
  • 字符数组初始化为空串

    千次阅读 2019-10-28 10:46:36
    (1) char str[10]=""; (2) char str[10]={'\0'}; (3) char str[10]; str[0]='\0';
  • 初始化一维字符数组有三种方法: String[] strs = new String[5]; //创建一个长度5的String(字符串)型的一维数组 String[] strs = new String[]{"","","","",""}; // strs = new String[] {“1”,“2”,“3”};...
  • C语言 字符数组初始化以及memset函数

    千次阅读 2020-09-07 19:27:53
    首先什么要初始化数组:假如创建了一个没有初始化的数组,里面其实各个位置是含有值的,举例: ... 当然可能会有一些情况导致这种方法不能初始化,或者字符数组是动态创建的,没有一个可以进行{0}的.
  • 字符数组初始化

    千次阅读 2020-12-30 10:33:29
    1.用字符串常量初始化,但是不指定长度由编译器计算。 如: char str4[]="Hello world!"; 对于这种赋值方式会自动添加’\0’ 2.直接给出字符数组中的各字符 如: char str1[5]={'a','b','c','d','e'}; 3.直接给...
  • 利用字符数组对字符串进行初始化

    千次阅读 2019-09-24 21:21:04
    static void Main(string[] args) { string str = "中国70周年国庆"; Console.WriteLine(str); //利用字符数组对字符串进行初始化 char[] charArray = { 'c', 'h', 'i', 'n','a'...
  • //字符数组初始化 char c1[3] = {'A','a','c'}; printf(&quot;%d\n&quot;, sizeof(c1)); //3 char c2[10] = { 'A', 'a', 'c'}; printf(&quot;%d\n&quot;, sizeof(c2)); //10 char c3[] = { 'A'...
  • C语言字符数组初始化.pdf
  • 1.字符数组初始化里面元素值多少 (1) 字符数组定义在main函数外面
  • 1、字符数组的定义与初始化 ...长度,则只将这些字符数组中前面那些元素,其余的元素自动定为空字符(即 '\0' )。 2、字符数组与字符串 在c 语言中,将字符串作为字符数组来处理。(c++中不是) 在实际
  • 字符数组初始化及字符串的使用

    千次阅读 2020-10-15 18:55:45
    文章目录字符数组的定义字符数组初始化字符串存放'\0'的作用 字符数组的定义 同整型数组一样: char c[10]; char ch[3][4]; 字符数组初始化 定义数组时初始化,如: char c[10]={'a','b','c','d'}; 如果输出格式...
  • C字符数组初始化相关问题总结 在C语言编程中,当我们声明一个字符串数组的时候,常常需要把它初始化为空串。总结起来有以下三种方式: (1) char str[10]="";(2) char str[10]={'\0'};(3) char str[10]; ...
  • 定义时进行初始化: char ch[20]="cpp"; //ok cout << ch << endl; 仅定义不初始化 char ch[20]; ch = "cpp";//出现”表达式必须是可修改的左值“的错误提醒,编译报错“不可指定数据类型”。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 619,607
精华内容 247,842
关键字:

字符数组初始化为空

友情链接: Wenjian-Li-HW1.zip