IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 字符串【C/C++函数操作】 -> 正文阅读

[C++知识库]字符串【C/C++函数操作】

字符串

博文简述C/C++中常见库函数的操作。

概念

字符串即由char型数组存储一组字符的表达形式,在C++中存在string类型对字符串进行存储与操作。字符串由’\0’作为结束的标志

输入方法

char str[120] = {0};
1.scanf("%s",str);//采用scanf可使用%s读取一段字符串,字符串读入遇到空白则结尾,自动添加'\0'
2.gets(str);//在C语言中已经废弃的函数,此函数并不安全。
3.//自定义readline函数
int readline(char str[]){
    int ch,i = 0;
    while((ch = getchar())!='\n'&&ch!=EOF){//读取一行,遇到换行或者文件末尾结束读入
        str[i] = ch;
        i++;
    }
    str[i] = '\0';//手动添加'\0',字符串标志
    return i;//返回字符串长度
}
//C++ 扩充,
4.getline(std::cin,str);//从cin中读入一行字符串存在str中
5.std::cin>>str;//和scanf类似

输出方法

1.printf("%m.ns",str);//输出占m列,但只取字符串中左端n个字符。这n个字符输出在m列的右侧,左补空格。
//不加格式控制则完全输出
2.puts(str);
//C++ 扩充
3.cout<<str;

C中字符串函数

字符串间处理

#include<string.h>
char dest[120],src[120],s1[120],s2[120],sub[120],str[120];
char ch;
int n;
1. char* strcpy(dest,src);//将src中字符串复制到dest中
2. char* strncpy(dest,src,n);//将src中字符串前n个字符作为字符串复制到dest中
3. int strlen(str);//返回str字符串长度
4. char* strcat(dest,src);//将src拼接到dest的末尾
5. char* strncat(dest,src,n);//将src的前n个字符拼接到dest末尾
6. int strcmp(s1,s2);//按字典序比较s1,s2的大小(s1>s2),返回值为正数,零,负数。
7. int strncmp(s1,s2);//同strcmp比较s1,s2中前n个字符
8. char* strstr(src,sub);//返回sub在src中第一次出现的地址(指针),没有则返回NULL
9. char* strchr(src,ch);//返回字符ch在src中第一次出现的位置,没有则返回NULL
10. char* strrchr(src,ch);//ch在src中最后一次出现的位置,没有则返回NULL

字符串与数字转化

#include<stdlib.h>
char str[10];
1. int atoi(str);//对于正负+0~9的数字组成的字符串转化为整数,跳过前导空格,非数字结尾
2. double atof(str);//同atoi,返回双进度浮点数
3. long atol(str);//返回长整型数据

字符处理

#include<ctype.h>
1. int isalnum(int c);//检查字符是否为数字或字母(0~9,a~z,A~Z) 
2. int isalpha(int c);//检查字符是否为字母(a~z, A~Z) 
3. int isdigit(int c);//检查字符是否为十进制数字(0~9) 
4. int islower(int c);//检查字符是否为小写的字母(a~z) 
5. int ispunct(int c);//检查字符是否为标点符号(~`!@#$%^&*()_+-={}[]:;'“<>,./?\|等)
6. int isspace(int c);//检查字符是否为空白字符(Tab、垂直Tab、换行、换页、回车、空格) 
7. int isupper(int c);//检查字符是否为大写字母(A~Z) 
8. int isxdigit(int c);//检查字符是否为十六进制数字(0123456789ABCDEFabcdef)
9. int tolower(int c);//转化字符为小写字母
10. int toupper(int c);//转化字符为大写字母

字符串中单个字符可由取下标操作进行随即访问并修改。键盘上能够组合得到的字符均在ASCII编码中。字符串可以存储中文,但编码格式与英文不同。

C++ string内置操作

1.构造函数

string s1();//等价于s1 = ""
string s2("Hello World");//等价于s2 = "Hello World"
string s3(3,'A');//s3 = "AAA"
string s4("ABCD",2,2);//s4 = "CD"

2.长度

int str.length();//返回str长度
int str.size();
int str.capacity();//获取容量,内存大小

3.字符串拼接

string s1,s2;
1. s1+=s2;
2. s1.append(s2);
3. s1 = s1 + s2;

4.判断

string s1,s2;
s1>s2;//>,<,==,<=,>=,!=返回bool型量
s1.empty();//判空

5.查找(查找到则返回首下标,否则返回string::npos,即-1)

int find();//从前往后查找子串或字符出现的位置。
int rfind();//从后往前查找子串或字符出现的位置。
int find_first_of();//查找s1中第一次出现"abc"中任一字符的位置
int find_last_of()//从后往前查找何处出现另一个字符串中包含的字符。
int find_first_not_of()//从前往后查找何处出现另一个字符串中没有包含的字符。
int find_last_not_of()//从后往前查找何处出现另一个字符串中没有包含的字符

6.获取指定位置的子串

string substr(int n = 0, int m = string::npos) const;//函数原型
//n为子串开始的下标,m为长度。

7.替换子串

string replace(int begin,int end,string str);
//begin为被替换字符串中的首下标,end为被替换字节数,替换字符串str可由构造函数进行重载
string s1 = "12345";
string s2 = s1.replace(1,4,"abc");//s2 = "1abc"

8.删除子串[返回自身引用]

string& erase(int begin,int num);//推测
string s1 = "12345",s2 = "abscdsf";
s1.erase(0,3);//s1 = "45"
s2.erase(1);//s1 = "a"

9.插入字符串

string& insert(int index,string str);
//index:插入下标,str插入的字符串(同构造函数重载)
string s1 = "12345";
s1.insert(2,"my");//s1 = "12my345"

10.交换字符串

s1.swap(s2);

11.清除字符串

s1.clear();
  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-02-06 13:38:43  更:2022-02-06 13:39:44 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 8:53:55-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码