首页 > 编程语言 >C++字符串

C++字符串

时间:2023-10-28 10:35:55浏览次数:36  
标签:s2 s1 C++ char 字符串 str1

C++字符串

C++提供了两种类型的字符串表示形式:

  • C风格字符串
  • C++引入的string类类型

C风格字符串

C风格的字符串源于C语言,并在C++中继续得到支持。字符串实际上是使用Null字符终止的一堆字符数组。因此一个以NULL结尾的字符串,包含了组成字符串的字符。
下面的声明和初始化创建了一个“Hello”字符串。由于在数组的末尾存储了空字符,所以字符数组的大小比单词“Hello”的字符数多了一个。
char greeting[6] = {'H', 'e', 'l', 'l', 'o', ''};,按照数组初始化规则,可以把语句写为char greeting[] = "Hello";。以下是C/C++中定义的字符串的内存表示:

其实,不需要把NULL字符放在字符串常量的末尾。C++编译器在初始化数组时,自动把''放在字符串的末尾。
实例:

#include<iostream>
using namespace std;
int main(){
	char greeting[] = {'H', 'e','l','l','o','\0'};
	cout<<"greeting message:";
	cout<<greeting<<endl;
	return 0;
}

结果显示:

C++中有大量的函数用来操作以NULL结尾的字符串:

函数 作用
strcpy(s1,s2) 复制字符串s2到字符串s1
strcat(s1, s2) 连接字符串s2到s1的末尾
strlen(s1) 返回字符串s1的长度
strcmp(s1, s2) 比较字符串s1和字符串s2,如果相同返回0,如果s1<s2返回<0;如果s1>s2返回>0
strchr(s1, ch) 返回一个指针,指向字符串s1中字符ch的第一次出现的位置
strstr(s1, s2) 返回一个指针,指向字符串s1中字符串s2的第一次出现的位置

实例:

#include<iostream>
using namespace std;
int main(){
	char str1[11] = "Hello";
	char str2[11] = "World";
	char str3[11];
	int len;
	//复制str1到str3
	strcpy(str3,str1);
	cout<<"strcpy(str3,str1):"<<str3<<endl;
	//连接str1和str2
	strcat(str2, str1);
	cout<<"strcat(str2, str1):"<<str2<<endl;
	//连接后str2的总长
	len = strlen(str2);
	cout<<"strlen(str2):"<<len<<endl;
	return 0;
}

结果输出:

C++中的String类

C++标准库提供了string类类型,支持上述所有的操作,另外还增加了其他功能。
实例:

#include<iostream>
#include<string>
using namespace std;
int main(){
	string str1 = "Hello";
	string str2 = "World";
	string str3;
	int len;
	//复制str1到str3
	str3 = str1;
	cout<<"str3:"<<str3<<endl;
	//连接str1和str2
	str3 = str1 + str2;
	cout<<"str1+str2:"<<str3<<endl;
	//连接后,str3的长度
	len = str3.size();
	cout<<"str3.size():"<<len<<endl;
	return 0;
	
}

结果显示:

标签:s2,s1,C++,char,字符串,str1
From: https://www.cnblogs.com/bonne-chance/p/17793745.html

相关文章

  • 【C++】继承 ⑪ ( 多继承 | 多继承语法 | 多继承案例 )
    文章目录一、多继承1、多继承基本语法2、多继承子类构造初始化3、多继承中访问父类成员二、多继承案例1、代码示例-简单多继承案例2、代码示例-多继承构造函数案例一、多继承1、多继承基本语法多继承概念:一个子类(派生类)可以继承多个父类(派生类);一个类......
  • 28. 找出字符串中第一个匹配项的下标
    1.题目介绍给你两个字符串haystack和needle,请你在haystack字符串中找出needle字符串的第一个匹配项的下标(下标从0开始)。如果needle不是haystack的一部分,则返回-1。示例1:输入:haystack="sadbutsad",needle="sad"输出:0解释:"sad"在下标0和6处匹配。......
  • C++数组
    C++数组声明数组在C++中要声明一个数组,需要指定元素的类型和元素的数量,如下所示:typearrayName[arraySize];这叫做一维数组。arraySize必须是一个大于零的整数常量,type可以为任意有效的C++数据类型。例如:doublevalance[10];初始化数组doublebalance[5]={1000.0,2.0,......
  • C++常量
    C++常量一、整数常量整数常量可以是十进制,八进制或十六进制的常量。前缀指定基数:0x或0X表示十六进制,0表示八进制,不带前缀则表示十进制。整数常量也可以带一个后缀,后缀是U和L的组合,U表示无符号整数(unsigned),L表示长整数(long),后缀可以是大写,也可以是小写,U和L的顺序任意。85......
  • LeedCode刷题(1)-交替合并字符串
    1.交替合并字符串题目:给你两个字符串word1和word2。请你从word1开始,通过交替添加字母来合并字符串。如果一个字符串比另一个字符串长,就将多出来的字母追加到合并字符串的末尾。示例1:输入:word1="abc",word2="pqr"输出:"apbqcr"解释:字符串合并情况如下所示:word1:ab......
  • C++数字及计算
    C++数字及计算C++定义数字#include<iostream>usingnamespacestd;intmain(){ //数字定义 shorts; inti; longl; floatf; doubled; //数字赋值 s=10; i=1000; l=1000000; f=230.45; d=30949.374; cout<<"shorts:"<<s<<en......
  • C++函数定义、声明及调用
    C++函数定义、声明及调用以计算两个数最大值为例,说明C++函数定义、声明及调用#include<iostream>usingnamespacestd;intmax(intnum1,intnum2);//函数声明intmain(){ inta=100;//局部变量声明 intb=200;//局部变量声明 intret; ret=max(a,b);//函数调......
  • 151. 反转字符串中的单词
    给你一个字符串s,请你反转字符串中单词的顺序。单词是由非空格字符组成的字符串。s中使用至少一个空格将字符串中的单词分隔开。返回单词顺序颠倒且单词之间用单个空格连接的结果字符串。注意:输入字符串s中可能会存在前导空格、尾随空格或者单词间的多个空格。返回......
  • c++恶心的char和string
    统计数字出现次数。Char的长度Strlen(char) string的长度.size()函数与.length()Char和string都可以==比较。注意stringa=”1adbcde”,而a[0]是char类型需要转换。 #include<bits/stdc++.h>#include<string>usingnamespacestd;intmain(){intn;charx;cin>>......
  • c++函数指针
    一、函数指针基础知识二、深入探讨函数指针三、auto四、使用typedef进行简化五、指针和const介绍安装使用参考介绍这是一个介绍。安装这是安装说明。使用这是使用说明。参考1.尽可能使用const一、函数指针基础知识完成函数指针需要的工作:获取函数的地址。声......