• 玩转字符串——不一样的风格


    玩转字符串——不一样的风格

    字符串指存储在内存的连续字节中的一系列字符。

    C++中的字符串分为两种形式:

    • C 风格字符串
    • C++ string类字符串
    1 C 风格字符串

    C-风格字符串的头文件为#include,默认以’\0’结束,存储空间有’\0’。

    字符串定义形式:

    • 字符数组:
    char a[5] = {'h','e','l','l','o'};
    
    • 1
    • 字符串
    char a[5] = {'a','b','c','d','\0'};
    
    • 1

    也有另外一种字符串定义:

    char a[8] = "abcdefg";
    
    char a[] = "awdda;wdaa";
    
    
    • 1
    • 2
    • 3
    • 4

    字符数组或字符串的长度测量函数为sizeof、strlen

    • sizeof:返回所占总空间的字节数,针对整型或字符型数组及整型或字符型指针。由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间大小。
    • strlen:返回字符数组或字符串所占的字节数,针对字符数组及字符指针。

    举个栗子:

    定义一些字符串,求长度并运算、输出

    #include
    #include
    
    using namespace std;
    
    int main(){
    	
    	char s1[100];
    	
    	char s2[20] = "hello!";
    	
    	char s3[] = "a";
    	
    	char s4 = 'a';
    	
    	char s5[3] = {'a','b','c'};
    	
    	char s6[3] = {'a','b','\0'};
    	
    	cin >> s1;
    	
    	cout << strlen(s1) << endl;
    	
    	cout << s1 << "  " << s2 << "  " << s3 << "  " << s4 << "  " << endl;
    	
    	cout << s5 << "  " << s6 << "  " << endl;
    	
    	cout << "djawdawda" "123" << endl;
    	
    	cout << "dwaddadadw"
    	"123" << endl;
    	
    	cout << "adawdada  123" << endl;
    	
    	return 0;
    } 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36

    运行结果

    在这里插入图片描述

    【C 风格字符串的输入方式有cin、getline和get】

    • cin:使用空格、制表符、换行符来确定字符串的结束位置,因此字符串只能接收一个单词。换行符会被保留在输入序列中。
    • getline:读取一行,直到遇到换行符,丢弃换行符。
    • get:读取一行,直到遇到换行符,换行符被保留在输入序列中。

    使用cin和get后会将换行符保留在输入序列中,解决办法为再调一次cin.get。

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    2 C++ string类字符串

    C++ string类字符串的长度没有限制,其头文件为#include。C++中的string类隐藏了字符串的数组性质,使用户可以像处理普通变量一样处理字符串。

    注意

    • 可以使用C风格字符串初始化string类字符串
    • 可以使用cin输入并将输入的内容存储到string类字符串中
    • 可以使用cout输出string类字符串
    • string类字符串没有’\0’的概念
    • char数组使用了一组用于存储一个字符串的存储单元,而string变量使用了一个表示字符串的实体。

    字符串的长度测量函数有.length()和.size()

    在这里插入图片描述

    C++ string类字符串的输入方式有cin和getline

    来个栗子:

    输入3个字符串,找出其中最小的字符串

    #include
    #include
    
    using namespace std;
    
    string minstr(string s1 , string s2){
    	
    	if(s1 < s2){
    		return s1;
    	}
    	else{
    		return s2;
    	}
    }
    
    int main(){
    	
    	string s1 , s2 , s3 , min;
    	
    	cin >> s1 >> s2 >> s3;
    	
    	min = minstr(s1,minstr(s2,s3));
    	
    	cout << min << endl;
    	
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    在这里插入图片描述

  • 相关阅读:
    【星海出品】flask 与docker
    贪心算法篇——经典题型
    2024 年最新 windows 操作系统部署安装 redis 数据库详细教程(更新中)
    什么是SystemUI
    LeetCode-重新安排行程(C++)
    系统移植第5天作业
    蓝桥杯刷题(六)
    红队内网渗透神器--CobaltStrike安装教程
    Redis夺命十二问,你能扛到第几问?
    NOI2022游记
  • 原文地址:https://blog.csdn.net/weixin_44226181/article/details/126508151