字符与字符串操作归纳[持续更新]

最近刷了一些题,很多喜欢考字符串转换之类的,自己平时容易忘记,做题时也去翻了很多次,故归纳下来,加深印象。

  • 字符操作

    我们经常要处理string对象中的字符,比如检查一个string是否包含空白,大小写转换,首字母大写,归纳一些字符处理的操作。

    再cctype的头文件中定义了一组标准库函数处理这部分工作。主要是简化代码,改善易读性。

      isalnum(c)      当c是字母或数字时为真

      isalpha(c)       当c是字母时为真

      isdigit(c)         当c是是数字时为真

      islower(c)       当c是小写字母时为真

      issupper(c)       当c是大写字母时为真

      isspace(c)      当c是空格时为真

      ispunct(c)       当c是标点符号时为真(c不是数字,字母,控制字符,可打印空白中的一种)

      isgraph(c)       当c是不是空格但可打印的字符时为真

      isprint(c)       当c是可打印字符时为真(即c是空格或c具有可视形式)

      isxdigit(c)         当c是16进制时为真

      tolower(c)        当c是大写字母,输出对应的小写字母,否则原样输出c 

      toupper(c)       当c是小写字母,输出对应的大写字母,否则原样输出c

  •  string对象

    初始化方式

string s1
string s2(s1)
string s2 = s1
string s3("value")         //直接初始化
string s3 = "value"       //拷贝
string s4(n, ‘c‘)            //初始化为n个c
//n,len2和pos都是无符号值
string s(cp, n)            //s是cp指向数组中前n个字符的拷贝。此数组至少包含n个字符

string s(s2, pos2)
 //s是string s2从pos位置开始的字符的拷贝,若pos2>s2.size(),构造函数的行为未定

string s(s2, pos2, len2)  //pos2开始n个字符的拷贝

    介绍string对象的操作之前,先介绍下标准IO库对string的特别支持。

    string流

    sstream头文件定义了三个类型来支持内存IO。 关系如下

    stringstream继承包括istringstream和ostringstream,  sstream继承包括iostream和stringstream

    例如从控制台读入一行 int数据 (1 2 3 4 5 6):

#include<iostream>
#include<sstream>
#include<string>
using namespace std;

vector<int> readNumLine()
{
    string strLine;
    vector<int> vctNums = {};
    if(getline(cin, strLine))
    {
        vctNums = {};
        int nNum;
        istringstream iss(strLine);
        while(iss>>nNum)
            vctNums.push_back(nNum);
    }
}

    ostringstream与 cout 类似。

  • string对象的操作

    首先是重载的运算符 << 、>>、 []、=、==、!=、+、<、<=、>、>=。

getline(is, s)        //从is中读入一行赋给s 返回is
s.empty()
s.size()

    string子字符串操作

s.substr(pos, n)
//返回一个string,包含s中从pos开始的n个字符的拷贝,pos默认为0.n默认为 s.size() - pos,即pos开始的所有字符

    string搜索操作

    未完待续。。。

       

       

原文地址:https://www.cnblogs.com/hao11/p/12189358.html

时间: 2024-10-29 11:49:15

字符与字符串操作归纳[持续更新]的相关文章

8. PowerShell - 基础概要,变量,字符和字符串操作,运算符操作

PowerShell脚本的基础概要 常量,变量的使用 各种字符串的操作 对运算符的操作 数组,哈希表:创建.修改合并数组和哈希表 条件判断:if, switch 语句 逻辑判断:使用运算符进行判断 循环控制:while, do-while, do- until , for,foreach 语句 模块化:组织和调整代码:使用切当的数据类型,调用其它脚本函数 WMI对象: WMI命名空间的概念,WMI所提供的功能,查看和使用WMI命名空间. WMI的类:get-wmiobject;  查询WMI A

[Python Study Notes]字符串处理技巧(持续更新)

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' >>文件: 字符串处理.py >>作者: liu yang >>邮箱: [email protected] >>博客: www.cnblogs.com/liu66blog '''''''''''''''''''''''''''''''''''''''''''''

C++ 关于字符串总结(持续更新)

1.find_first_of size_type find_first_of( const basic_string &str, size_type index = 0 ); size_type find_first_of( const char *str, size_type index = 0 ); size_type find_first_of( const char *str, size_type index, size_type num ); size_type find_first

linux下的一些操作(持续更新)

文件操作 创建文件夹: mkdir 文件夹名称 查看当前目录的文件夹及文件:ls 参看当前文件夹下的所有文件及信息: ls -l 删除空文件夹:rmdir 文件夹名称 删除非空文件夹:rm rf 文件夹名称 删除文件:rm 文件名 删除文件夹下所有文件: rm * 修改文件夹及文件名称 mv 文件名 修改后的文件名 新建(打开)一个txt文件:vi  文件名 打开文件夹或目录: cd 目录 系统基本操作 查看日历:cal 查看时间:date 查看运行中的进程:ps aux 查看系统中的每个线程:

Java 字符串工具类持续更新中非原创

1 import java.util.ArrayList; 2 import java.util.List; 3 4 /** 5 * 字符串相关的工具类 6 * 7 * @author Fsx 8 * 9 */ 10 public class StringUtil { 11 /** 12 * 判断一个字符串是否为空或等于空字符串 13 * 14 * @param s 15 * 字符串 16 * @return 是否为空或空字符串 17 */ 18 public static final bool

C#中级-常用多线程操作(持续更新)

一.前言       多线程操作一直是编程的常用操作,掌握好基本的操作可以让程序运行的更加有效.本文不求大而全,只是将我自己工作中常常用到的多线程操作做个分类和总结.平时记性不好的时候还能看看.本文参考了多篇园子里的精彩博文,在文章最后会贴出具体来源,感谢他们的无私奉献. 二.关于线程 (1) 为何使用线程: 可以使用线程将代码同其他代码隔离,提高应用程序的可靠性: 可以使用线程来简化编码: 可以使用线程来实现并发执行. (2) 进程.应用程序域以及线程的关系: 进程(Process)是Wind

Mikrotik-routeros命令行操作(持续更新)

Mikrotik是一款比较成熟的软路由.在没有条件购买和实用硬件路由器或者交换的时候,这款软路由可以作为一项参考. 主页地址:https://mikrotik.com/ wiki文档:https://wiki.mikrotik.com/wiki/Main_Page 好了,有什么本文档没有详细叙述的命令或者实用经验,大家可以通过官网和wiki来下载OS和阅读相关的文章 一.登录方式 1.winbox:这款官方的工具提供客户端的方式登录RouterOS的系统界面,这样对于一个小白用户或者有网络基础的

Linux下Mysql操作笔记(持续更新)

远程自动备份shell #!/bin/bash filename=$(date +%Y%m%d) mysqldump -h [host_ip] [database_name] -u[user_name] -p[password]|gzip>/home/mysql/backup/[nameprefix]$filename.gz 使用备份文件恢复数据库 1)首先使用 mysql -u root -p进入命令行 2)使用 source xxx.sql直接恢复

Linux下遇到的操作 (持续更新……)

1.作业让写一个输入输出重定向,管道联接.这里要讲的不是这个而是 我当时想写个程序来演示这些功能:但我发现我的虚拟机中没有装GNU不能用g++命令,然后就惊奇的发现Linux命令行可以直接联网下载安装: 命令:sudo apt-get  install  build-essential 而且后来我在装codeblocks时,发现Linux下的codeblocks有自动检测编译环境的能力,直接检测出了GNU的存在!!