• C++语法基础篇字符串


    字符串是计算机与人类沟通的重要手段

    1.Ascii码

    字符(指英文)在计算机当中是以AscII码存储的范围在-128~127

    #include<iostream>
    #include<cstring>
    using namespace std;
    int main(){
    	for(int i=0;i<128;i++){
    		printf("%d : %c\n",i,(char)i);  //本质上char类型字符在计算机中存储的仍然是int类型
    										//所以char可以直接进行运算,
    	}
    	return 0;
    }
    

    需要记住的常用Ascii码:

    • 0~9 对应 48~57
    • A~Z 对应 65~90
    • a~z 对应 97~122

    2.字符数组

    2.1 字符数组初始化

    /*
    	字符数组初始化 
    */
    #include<iostream>
    #include<cstdio>
    using namespace std;
    int main(){
    	
    	char a[]={'a','b','c'};		//普通的初始化 
    	char b[]={'a','b','c','\0'};	// 添加一个表示字符串结尾的字符'\0' 
    	char c[]="abc"; 		//长度为4
    	char d[5]="song"; //字符串长度为4,字符数组必须开 5个默认还会存'\0'  
    	
    	cout<<a<<" "<<endl;
    	cout<<b<<" "<<endl;	
    	cout<<c<<" "<<endl;   	
    	cout<<d<<" "<<endl;     
    	
    	//字符数组的输入
    
    	char e[100];
    	scanf("%s",e); //方式一:向字符数组赋值的时候不加取地址符&,因为字符本身就是一个地址
    	cin>>s; 	//方式二: 
    	fgets(e,10000,stdin)  //方式三:因为前两种读入是遇到空格或回车会停止,第三种方式是直接读取一行(包含空格、回车) 
    						 // 参数一:为那个数组读入,参数二:最多读入的长度,参数三:后面讲
    	cin.getline(e,1000) //方式四: 读入一行,参数一:目标数组,参数二:最多读入的长度 
    
    						   
    	//为指定的某位置赋值可以 
    	 scanf("%s",e+1);//从数组的第二个位置开始赋值 
    	 cin>>s+1  //数组的第二个位置开始赋值 
    	 
    	 
    	String s; 
    	getline(cin,s)//String类型,读入一行 
    	
    	//字符数组的输出 
    	printf("%s\n",e);
    	puts(e)//默认存在换行符 
    	
    	
    	return 0;
    }
    
    //字符串就是字符数组加上'\0'结束符 
    

    2.2 字符数组常用函数

    /*
    	字符数组常用操作 
    */ 
    #include<iostream>
    #include<cstdio>
    #include<cstring> 
    using namespace std;
    int main(){
    	
    	char s[100],a[100],c[100];
    	scanf("%s",s);
    	scanf("%s",a);
    	
    	//求字符串长度 strlen 
    	cout<<strlen(s)<<endl;
    	//比较两个字符串 strcmp 
    	cout<<strcmp(s,a)<<endl;  //按照字典序比较,s>a 返回1,s=a返回0,s<a返回-1 
    	//字符串的复制 
    	strcpy(c,s); //将s字符串赋值给c字符串 
    	cout<<c<<endl; 
    	return 0;
    } 
    

    3. String 字符串

    /*
    	字符串String,需要引入库#include<string> 
    */
    
    #include<iostream>
    #include<cstdio>
    #include<string>
    using namespace std;
    int main(){
    	//初始化string类型字符串 
    	string s1;   //定义一个默认的空字符串 
    	string s2 = s1;		//s2为s1的副本 
    	string s3="hello";	//s3是字面值为hello的字符串 
    	string s4(10,'c');	//s4是 cccccccccc 
    	
    	// 字符串的输入和输出
    	cin>>s1;   //string类型不能用scanf读入,但是可以使用printf输出 
    	cout<<s1<<endl;
    	printf("%s",s1.c_str());//调用c_str()函数,返回的是s1字符数组的首地址 
    	puts(s1.c_str());//puts输出 
    	
    	//读入整行
    	getline(cin,s1); 
    	
    	
    	//常用函数
    	//size(),返回字符串的长度 
    	s1.size(); 
    	//empty(),判断字符串是否为空 
    	s1.empty();
    	//字符串的比较,跟变量比较的方法类似 (按字典序) 
    	if(s1 != s2);  
    	//字符串拼接 (连接),同样也可以直接加字符(
    	//默认的=两边只有要string,就全部转化为string进行拼接,字面值串起来) 
    	string s5=s3+"absc" ; //输出 helloabsc    
    	string s6="abc"+"def";//报错 ,前提是两边都有string类型 
    	 
    	//字符串遍历
    	//方式一: 当作字符数组遍历
    	string s="hello";
    	for(int i=0;i<s.size();i++) cout<<s[i]<<endl;  
    	//方式二:增强for
    	for(char c : s) cout<<c<<endl; //等价:	for(auto c : s) cout<<c<<endl;   auto类型自动推导 
    	
    	
    	   // 两个函数back():返回字符串的最后一个字符
        //    pop_back():移除字符串的最后一个字符
    	
    }
    
  • 相关阅读:
    jsp作业第二次
    软件测试课堂练习
    第七次作业
    第六次作业
    第五次作业
    第四次作业
    第七周作业
    jsp第六周作业
    jsp第四周作业
    jsp第二次作业
  • 原文地址:https://www.cnblogs.com/qxsong/p/15837302.html
Copyright © 2020-2023  润新知