zoukankan      html  css  js  c++  java
  • C语言字符串

    一: 字符串:

        格式: 用“”括起来的字符(其实c语言中得字符串本质就是一个字符数组)

        注意:

        1)字符的变量是不能够存储字符串   char a='c';    a ="ab";(错) a="中"(错)

        2)C中没有字符串类型,字符串是用字符数组来存储

    二:字符数组

        1)初始化方法

        1)先定义,后初始化

        char c3[6];

        c3[0]='a';

        c3[1]=65;  //'A' 字符型和整型 可以互相转换

        2)定义的同时进行初始化

        跟一维数组初始化一样:

        char c4[5]={'h','e','l','l','o'}; 不带因为这样初始化是按照字符依次存储到分配的内存中

        char c5[]={'h','e','l','l','o',' ','w'};

        不一样的:

        char c6[]={"hello world!"}; 这样初始化带,也就是内存多一个字节

        char c7[20]={"hello itcast!"};

        char c8[]="fasdfasdf";

        注意:

        字符数组和其他的整形数组一样,当我们一旦给数组部分初始化了

        剩下没有初始化的部分也都是0

        2)访问方式

        1)访问单个字符

        printf("%c",c[0]);

        2)以字符串的形式输出

        char c[5]="asbc";

        printf("%s",c); %s遇到就会结束

        3)存储原理

        字符数组在内存中存储的原理

        1)计算机分配连续的内存空间

        2)字符串的第一个字符存放到地地址中

        3)字符数组的每一个字符占用1个字节

        char c1[6];

        int len = sizeof(c1)/sizeof(char);

        = sizeof(c1);

        注意:

        1>char c5[]={'h','e','l','l','o',' ','w'};  //c5的每一个元素都是char类型,赋了7个值,长度是7

        printf("c5:%s ",c5);//打印结果:c5:hello whelloaA,造成这个问题的原因是没有遇到,以%s的格式进行打印,只有遇到才结束,因字符数组中存放的没有,继续打印

        2>char ch[20],ch1[10],ch2[10];

        //以%s格式进行输入的时候,输入的时候,不能输入空格

        //如果输入了空格,认为此次输入结束,scanf退出

        scanf("%s%s%s",ch,ch1,ch2);

    三:字符串的长度计算问题

        1)统计字符串可见的字符的个数(不含)

        char c[]="aaaaaa";

        int i=0;

        while(c[i]!='')i++;

        printf("%d ",i);

        2)统计字符串占用的字节数(含)

        char c[]="afasfdasdfasf";

        int i=0;

        while(c[i++]!='');

        printf("%d ",i);

    四: //1、puts()  输出的函数,输出内容到输出的缓冲区

        //    printf("Hello, World! ");

        //    //fflush(stdout);  //强制刷新缓冲区

        //    //puts可以帮我们自动换行

        //    puts("hello world!");

        //

        //    char ch[]="asdfasfasfasf";

        //    puts(ch);

        //puts的缺点是不能格式化输出

        //2、gets() 获取用户从键盘上输入的内容

        //优点:可以从键盘接收含空格的字符串

        //注意:warning: this program uses gets(), which is unsafe.

        //gets()是不安全的

        //    char ch3[10];//当输入的内容超出了数组的长度,gets()会在数组中放10个字符,但是没有''

        //    char ch1[10];

        //    //获取内容,从键盘上

        //    gets(ch1);

        //    //输出内容

        //    puts(ch1);

        //3、strcat 字符串连接函数

        //    char oldStr[40]="welcome to ";

        //    char newStr[10];

        //    gets(newStr); //接收用户输入的内容

        //    //把newStr连接到oldStr最后,newStr会覆盖oldStr的''

        //    strcat(oldStr,newStr); //进行字符串的连接

        //    puts(oldStr);

        //4、strcpy 字符串的拷贝函数

        //    char oldStr[40]="welcome to ";

        //    char newStr[10];

        //    gets(newStr);

        //    //把newStr的内容拷贝到oldStr中,会覆盖oldStr中的内容

        //    strcpy(oldStr,newStr);

        //    puts(oldStr);

        //5、strcmp 字符串的比较函数

        //    char oldStr[10]="abcde";

        //    char newStr[10];

        //    //strcmp(oldStr,newStr) 逐个比较字符的ascii码值

        //    //返回值>0 表示oldStr>newStr

        //    //返回值<0 表示oldStr<newStr

        //    //返回值=0 表示oldStr==newStr

        //

        //

        //    gets(newStr);

        //    if (strcmp(oldStr,newStr)>0) {

        //        puts("你输入的字符串小了");

        //    }else if(strcmp(oldStr,newStr)<0){

        //

        //        puts("你输入的字符串大了");

        //    }else{

        //

        //        puts("相等");

        //

        //    }

  • 相关阅读:
    linux下安装apache2.4
    tomcat中设置多项目共享jar;类包
    解决在mybatis中使用CTE进行oracle查询数据类型为long的字段出现流关闭问题
    oracle根据pid查询出正在执行的执行语句
    通过配置tomcat虚拟路径配置站点的静态资源
    百度编辑器umeditor使用总结
    通过ApplicationContextAwareSpring实现手工加载配置的javabean
    jquery登录验证插件
    linux服务器下tomcat部署项目内存溢出
    读取properties文件
  • 原文地址:https://www.cnblogs.com/-boy/p/4038936.html
Copyright © 2011-2022 走看看