【C++基础】C++中的字符串

简介: 【C++基础】C++中的字符串

C++支持两种字符串,一种是从C继承过来的C-字符串;另一种是string。下面对它们进行简要的分析。


【C-字符串】

1、 【简介】C-串是以一个全0位(整数0)字节作为结束符的字符序列。该全0字节既是8位的整数0,也是ASCII码的0。

(1)【空间长度】字符串长度加1,因为它末尾有一个0作为结束符

(2)【类型】C-串的类型为char*型


2、 字符指针与字符数组

(1)char* str=”Hello!”;

(2)str是字符指针变量,*str是字符指针变量的间接引用

(3)【输出】

输出字符指针就是输出C-串,输出所有字符,直到遇到0

输出字符指针的间接引用,就是输出单个字符

(4)比较:C-串字符是字符指针,因此,比较两个【内容相同】的C-串时,会它们的空间位置不相同而不同

C库函数中,专门设计了C-串的比较函数【strcmp】来用于比较

(5)复制:C-串字符数组是不能简单复制的

char a1[6]=”hello”;
char a2[6]=a1; //错误

C库函数设计了【strcpy】函数用于C-串复制

注:C-库函数在string.h的头文件中


【string】

1.【简介】string是一种自定义的类型,它可以方便地执行C-串不能直接执行的一切操作

2.【处理空间】string的处理空间是自动的,需要多少,用多少;它不用担心指针脱离;它可从C-串转换得到,还可从内部“提炼”出C-串

3.string与C-串有良好的亲和性,C-串可以直接赋值给创建中的和已经存在的string变量



【字符串的输入/输出】

1.输入:

(1)循环读入方式:运用“cin>>”

for(string s;cin>>s;)
cout<<s<<” ”;
cout<<endl;

或者

1. for(char a[10];cin>>a;)
2. cout<<a<<” ”;
3. cout<<endl;

注:-“cin>>”的读入方式总是将前导的空格(空格、回车、水平或垂直制表符等)过滤掉,当遇到空格时结束本次输入

-“cin>>”不能辨别空格与回车的差异



(2)通过getline逐行输入:

string s;
getline(cin,s);
cout<<s<<endl;

或者

char a[40];
cin.getline(a,40);
cout<<a<<endl;

注:getline总是将行末的回车符过滤掉

(3)逐个字符输入

for(char ch;(ch=cin.get())!=’\n’;)
cout<<char(ch);
cout<<endl;

【string流】

目录
相关文章
|
3月前
|
搜索推荐 编译器 C语言
【C++核心】特殊的元素集合-数组与字符串详解
这篇文章详细讲解了C++中数组和字符串的基本概念、操作和应用,包括一维数组、二维数组的定义和使用,以及C风格字符串和C++字符串类的对比。
101 4
|
2月前
|
缓存 网络协议 API
C/C++ StringToAddress(字符串转 boost::asio::ip::address)
通过上述步骤和示例代码,你可以轻松地在C++项目中实现从字符串到 `boost::asio::ip::address`的转换,从而充分利用Boost.Asio库进行网络编程。
82 0
|
2月前
|
编译器 C语言 C++
C/C++数字与字符串互相转换
C/C++数字与字符串互相转换
|
3月前
|
C++
HTML+JavaScript构建一个将C/C++定义的ANSI字符串转换为MASM32定义的DWUniCode字符串的工具
HTML+JavaScript构建一个将C/C++定义的ANSI字符串转换为MASM32定义的DWUniCode字符串的工具
|
3月前
|
存储 C++
C++(五)String 字符串类
本文档详细介绍了C++中的`string`类,包括定义、初始化、字符串比较及数值与字符串之间的转换方法。`string`类简化了字符串处理,提供了丰富的功能如字符串查找、比较、拼接和替换等。文档通过示例代码展示了如何使用这些功能,并介绍了如何将数值转换为字符串以及反之亦然的方法。此外,还展示了如何使用`string`数组存储和遍历多个字符串。
|
5月前
|
算法 C++
2730. 找到最长的半重复子字符串(c++,滑动窗口)
2730. 找到最长的半重复子字符串(c++,滑动窗口)
|
5月前
|
C++
567. 字符串的排列(c++)滑动窗口
567. 字符串的排列(c++)滑动窗口
|
5月前
|
编译器 C++
【C++】string类的使用④(字符串操作String operations )
这篇博客探讨了C++ STL中`std::string`的几个关键操作,如`c_str()`和`data()`,它们分别返回指向字符串的const char*指针,前者保证以&#39;\0&#39;结尾,后者不保证。`get_allocator()`返回内存分配器,通常不直接使用。`copy()`函数用于将字符串部分复制到字符数组,不添加&#39;\0&#39;。`find()`和`rfind()`用于向前和向后搜索子串或字符。`npos`是string类中的一个常量,表示找不到匹配项时的返回值。博客通过实例展示了这些函数的用法。
|
6月前
|
C++ 容器
C++字符串string容器(构造、赋值、拼接、查找、替换、比较、存取、插入、删除、子串)
C++字符串string容器(构造、赋值、拼接、查找、替换、比较、存取、插入、删除、子串)
|
6月前
|
编译器 C++
【C++进阶】深入STL之string:模拟实现走进C++字符串的世界
【C++进阶】深入STL之string:模拟实现走进C++字符串的世界
44 1