字符数组

作者: 十年L_c2c6 | 来源:发表于2017-03-27 21:22 被阅读8次

    字符数组和数组的定义是一样的,赋值也和数组差不多,只不过字符数组用来存放字符。其实我感觉用起来也是一样的。

    字符数组的引用

    #include <stdio.h>
    int main()
    {
        int i,j;
        chara[][5]=
        {
            {'B','A','S','I','C'},
            {'d','B','A','S','E'}
        };
    for(i=0;i<=1;i++)
    {
        for(j=0;j<5;j++)
        {
            printf("%c ",a[i][j]);
        }
        printf("\n");
    }
    }
    

    在C语言中没有专门的字符串变量,通常用一个字符数组来存放一个字符串。当把一个字符串存入数组时,也把结束符‘\0’存入数组,并以此作为该字符串的结束标志。有了‘\0’以后,就不必再用字符数组的长度来判断字符串的长度了。

    C语言允许使用字符串的方式对数组作初始化赋值。
    例:char c[]={'C',' ','p','r','o','g','r','a','m'};
    可写为:char c[]={"C program"};或去掉{} 写为:char c[]="C program";

    字符数组的输入输出:

    除了上述赋值方法以外还可以使用printf,scanf函数直接输入输出;

    字符串处理函数:

    • puts()字符串输出函数
      一般形式:puts(字符数组名)
      功能:把字符数组中的字符串输出到显示器:
    int main()
    {
        char c[]="string666";
        puts(c);
        return 0;
    }
    

    但系统会显示有问题,所以老师给我们一个mygets的函数。

    #include <stdio.h>
    void mygets(char *ch,int size)
    {
        int i=0;
        for(i=0;i<size-1;i++)
        {
            ch[i]=getchar();
            if(ch[i]=='\n')
                break;
        }
        ch[i]='\0';
        if(i==size-1)
        {
            while(getchar()!='\n');
        }
    }
    
    • gets()字符串输入函数
      一般格式:gets(字符数组名)
      功能;从标准输入设备上输入一个字符串
    int main()
    {
        cahr st[15];
        printf("input st:");
        gets(st);
        puts(st);
        return 0;
    }
    
    • strcat:字符串连接函数
      一般形式:strcat(字符数组名1,字符数组名2)
      功能:把字符串2中的字符串连接到字符数组1中字符串后面,并删除数组1中的‘\0’.

    • strcpy:字符串拷贝函数
      一般形式:strcpy(字符数组名1,字符数组名2)
      功能:把字符数组2中的字符串拷贝到字符数组1中。结束标志‘\0’也一同拷贝,。注意:要求字符数组1要足够长,否则不能全部装入所拷贝的字符串。

    • strlen:测试字符串长度
      一般形式:strlen(字符数组名)
      功能:测试字符串的实际长度(不含字符串结束标志‘\0’)并作为函数返回值。

    相关文章

      网友评论

        本文标题:字符数组

        本文链接:https://www.haomeiwen.com/subject/glqdottx.html