zoukankan      html  css  js  c++  java
  • C++字符串和string类介绍

    一.C风格字符串

    ◆ 1、字符串是用字符型数组存储的,字符串要求其尾部以’’作为结束标志。如:
        char string[ ]=”C++ programming language”;
    用sizeof来测string长度为25个字节,而实际串本身长度(含空格)为24个字节,多出来的一个就是串结束符’’(含0)。

    ◆ 2、指针与字符串
        char *pstr=”C++ is a object_oriented language”;
    这里绝不是建立了一个字符串*pstr,并用赋值号后的字符串常量给它赋初值。而是编译器将字符串常量“C++ is a object language”的第一个字符的存储地址赋给字符指针作初值。字符串常量是放在字符串常量区中,它不属于指针pstr,反过来是pstr依附于它。

    用指针输出字符串:C++不对数组的边界进行检测,但字符串有一个结束符’’(全0),在程序运行时是可以知道实际串长度的。设有定义int a[10],如有语句:
        cout<<a<<endl;
    则打印出a数组在内存中的首地址,一个16进制的数。

    ◆ 3、字符串处理函数
    C++标准库有很多字符串处理函数,在头文件<cstring>中。

    1)字符串复制函数:
        char *strcpy(char *s,const char ct)
    返回值是指向复制后字符串中首字符的指针。

    【例5.10】字符串复制函数 strcpy()。(查看源码

    2)串连接函数:char *strcat(char *s,const char *ct)
    将串ct复制到串s的后面,形成一个长串。例如:
        char str1[30]=“张成”;
        char str2[20]=“是电子系的学生”;
        strcat(str1,str2);
    结果是str1中放的是“张成是电子系的学生”。

    3)字符串比较函数:int strcmp(const char *cs,const char ct)。
    两字符串比较是按字典排序方法进行。两个字符串从第一个字符比较起,如果相同,则比较第二个字符,依此类推,直到不同。哪个字符串对应的字符的ASCII码值大,串就大。如果两串直到结束符都相同,则一样大。若两个字符串相等,则返回0;串cs 大,则返回正整数;串ct大,则返回负整数。
    该函数也可很简洁地表达如下:
        int strcmp(const char *cs,const char *ct){
            int k;
            while((k= *cs - * ct)== 0 && *cs++ && *ct++);
        //注意*cs++和*ct++是条件判断后才++的
            return k;
        }

    4)求字符串长度函数:int strlen(const char *s)
    这里求出的串长度不包含串结束符在内。而sizeof运算符包括结束符,还包括没有使用的单元。

    ◆ 4、void指针及应用:称无类型或泛型指针。
    任何类型的指针都可以赋给void类型的指针变量,例如:
        int val=5;
        int *pi=&val; //必须为指针赋一个有效地址,才能引用指针
        void *pv=pi;
    但反过来,将泛类型指针赋给其他类型指针必须使用强制类型转换: pi=(int *)pv;

    【例5.11】将字符指针强制转换为泛型指针输出字符串地址。 
    #include<iostream>
    using namespace std;
    int main(){
      char *string1="欢迎学习C++程序设计课程!";
      cout<<"串值是:"<<string1<<" 串地址是:"<<(void*)string1<<endl;
      return 0;
    }

  • 相关阅读:
    Photoshop 基础七 位图 矢量图 栅格化
    Photoshop 基础六 图层
    Warfare And Logistics UVALive
    Walk Through the Forest UVA
    Airport Express UVA
    Guess UVALive
    Play on Words UVA
    The Necklace UVA
    Food Delivery ZOJ
    Brackets Sequence POJ
  • 原文地址:https://www.cnblogs.com/ganbing/p/6261817.html
Copyright © 2011-2022 走看看