• 第十八章 2string字符串 简单


    //char型字符串是C语言风格的字符串,它是用数组来保存字符串的,但是到了C++时代,由于延生了类,出现了一种C++风格的字符串,也就是string型字符串
    //这种风格的字符串是用string类来定义字符串的,因此要使用这个string类,我们必须在程序开头添加头文件string,string类存在于名字空间std中,这样我们就必须使用using std:string指令,或者直接用std::string来访问它
    //string类在定义时隐藏掉了字符串的数组性质,因此您有使用string类定义字会串时不用考虑如休将字符串存放在数组中,string类已经为您做好了这一步,您要做的,就是象定义一个整型变量那样使用它
    //string str; //这里定义了一个C++风格的字符串str
    //由于string是个类,那么string定义的字符串就可看作是string类的一个对象,或者我们可以这么说:C++风格的字符串就是用对象来保存字符串的
       //接下来的例子将演示char型字符数组和string型字符串的不同
    /*
    #include <iostream>
    #include <string>
    using namespace std;
    bool check(char ch[], char ch1[]);
    int main()
    {
    	string str="string型字符串";
    	char ch[13] = "char型字符串";
    	cout<<"请输入“狗”的英文单词"<<endl;
    	cin>>str;
    	if(str=="dog")
    	{
    	    cout<<"输入正确,狗的第一个字符为:"<<str[0]<<endl;
    	}else{
    	    cout<<"输入错误"<<endl;
    	}
    
    	cout<<"请输入“猪”的英文单词"<<endl;
    	cin>>ch;
    	//if(ch[0]=='p' && ch[1]=='i' && ch[2]=='g')
    	char pig[] = "pig";
    	//if(check(ch,pig) == true)
    	//strcmp函数用来比输两个字符串是否相等
    	//假如str1<str2,返回一个小于0的数字,如-1
        //假如str1=str2, 返回0
    	//假如str1>str2, 返回一个大于0的数字,如1
    	if(strcmp(ch,pig)==0)
    	{
    		cout<<"输入正确,猪的第一个字符为:"<<ch[0]<<endl;
    	}else{
    	    cout<<"输入错误"<<endl;
    	}
        return 0;
    }
    
    bool check(char ch[], char ch1[])
    {
         //char ch1[]="pig";
    	 bool ret=true;
    	 if(sizeof(ch) == sizeof(ch1))
    	 {
    		 for(int i=0; i<strlen(ch1); i++){
    			 if(ch[i] != ch1[i]){
    			     ret = false;
    				 break;
    			 }	 
    		 }     
    	 }else{
    	     ret =false;
    	 }
    	 return ret;
    }
    
    //未命名字符串
    //cout<<"pig";
    //该语句中的pig就是作为一个末命名字符串保存在文字常量区,然后通过cout对像加提取运算符<<以流的形式将它们输出
    //由于末命名字符串放在文字常量区,所以它就常量
    
    //使用strcmp函数后,代码明显示简化了不少,但是再简化也不如string类的字符串,由于string类的成员函数重载了比较运算符(==)之类的关系运算符,因些string类允许您使用运算符对它的字符串对像进行比较,这是string型字符串与char型字符数组的第一个区别
    

      

  • 相关阅读:
    Linux目录结构
    Linux简介
    队列、生产者消费者模型
    Process的几个用法和守护进程
    并发编程(初学)
    网络编程知识点小结
    用socketserver模块实现并发
    粘包问题、解决粘包问题和struct模块
    模拟ssh功能和subprocess模块
    socket 套接字编程
  • 原文地址:https://www.cnblogs.com/xiangxiaodong/p/2694480.html
Copyright © 2020-2023  润新知