精华内容
下载资源
问答
  • C++ 字符串读取及切片

    千次阅读 2020-08-16 22:25:04
    //字符串数据流动到屏幕。 2.getline可以读入一条语句,可以包含空格,遇到回车终止。 函数调用getline();从标准输入流对象cin(即键盘)连续读取字符(包括空格符),直到遇到换行符为止。 读取的这些字符放入..

    一、字符串读取

    1. cin每次只能读入单个单词,该单词中间不能有空格,遇到空格则停止读取。

    #include <iostream> 
    using namspace std;
    
    cin>>a;//把键盘的数据放到变量a里。
    cout<<"hello\n";//字符串数据流动到屏幕。

    2.  getline可以读入一条语句,可以包含空格,遇到回车终止。

    • 函数调用getline();从标准输入流对象cin(即键盘)连续读取字符(包括空格符),直到遇到换行符为止。
    • 读取的这些字符放入string类型的变量s中并丢弃换行符。
    • 其中,在键入程序输入过程中按下回车时,会在输入流中插入一个换行符。
    #include<iostream> //getline()同样属于命名空间std。
    #include <string>  //注意!使用getline要包含头文件string。
    using namespace std;
    
    string s;
    getline(s,cin);

    3. C++中本质上有两种getline函数:

    • 一种在头文件<istream>中,是istream类的成员函数
    • 在<istream>中的getline函数有两种重载形式。
    • <istream>中的getline函数的作用是从istream中读取至多n个字符保存在s对应的数组中。即使还没读够n个字符,如果遇到换行符'\n'(第一种形式)或delim(第二种形式),则读取终止,'\n'或delim都不会被保存进s对应的数组中。
    istream& getline (char* s, streamsize n );
    istream& getline (char* s, streamsize n, char delim );
    • 一种在头文件<string>中,是普通函数。
    • 在<string>中的getline函数有四种重载形式.
    • 用法和上一种类似,不过要读取的istream是作为参数is传进函数的。读取的字符串保存在string类型的str中。
    istream& getline (istream&  is, string& str, char delim);
    istream& getline (istream&& is, string& str, char delim);
    istream& getline (istream&  is, string& str);
    
    istream& getline (istream&& is, string& str);

    二、字符串切片

    按空格切分字符串的方法实现:split()

    #include<iostream>
    #include <sstream>
    #include <string>
    #include<vector>
    using namespace std;
    
    void split1(string str,vector<string> &ves);//声明
    
    int main()
    {
    	string str="the quick red fox jumps over the slow red turtle";
        vector<string> ves;
    
    	split1(ves,str); //字符串切片后存到ves里面
    
    	for(auto v:ves) //输出单个字符串
    		cout<<v<<endl;
     
    	return 0;
    }
    
    //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    void split1(string str,vector<string> &ves)
    {
    	istringstream ss(str);
    	string s;
    	while(ss >> s)
    	{
    		ves.push_back(s);
    	}
    }

    1. 指定字符分割

    //指定字符分割
    
    string s="123@456";
    string[] a=s.split("@");
    
    cout<<a[0]<<endl; //123
    cout<<a[1]<<endl; //456

    2. 使用正则表达式作为分隔符(separator)

    • 用|竖线去分割某字符,因为|本身是正则表达式中的一部分,所以需要\去转义,而\正好也是正则表达式中的字符,所以还需要一个\,既需要使用两个\才可以。
    • 对于某些特殊字符,如果字符串正好是正则的一部分,那么就需要转义才能使用。
    • 这些字符包括 |,+,,^,$, / , |, [, ], (, ), -, ., * 等,因为他们是正则表达式中的一部分,所以如果想要用该字符本身,这些字符需要进行转移才能表示它本身。
    string s="123|abc";
    string []b=s.split("\\|");
    
    cout<<b[0]<<endl; //123
    cout<<b[1]<<endl; //abc

    3. 使用空格作为separator 

    string s="hello world";
    string []b=s.split(" ");
    
    cout<<b[0]<<endl; //hello
    cout<<b[1]<<endl; //world

     

    展开全文
  • // 要切割的string类型字符串 string result_array[5] ; string result_str ; const char* delim = " ,*_"; // 参数delim则为分隔字符串 char* result;// 我们要的结果 char sentence_char[50]; // 创建char数组...
    #include <iostream>
    #include <string>
    #include<cstdio>
    #include <stdio.h>
    #include <typeinfo> 
    using namespace std;
    
    string *splitStr()
    {
        cout << "--- split_string ---" << endl;
        string sentence_str = "Mac,windows, linux_01,ubantu*centOS";  // 要切割的string类型字符串
        string result_array[5] ;
        string result_str ;
        const char* delim = " ,*_"; // 参数delim则为分隔字符串
        char* result;// 我们要的结果
        char sentence_char[50]; // 创建char数组类型
        strcpy(sentence_char, sentence_str.c_str());//将string复制为char数组
    
        result = strtok(sentence_char, delim);  // 通过strtok 进行切割;函数第一次调用需设置两个参数。第一次分割的结果,返回串中第一个 ',' 之前的字符串,即Mac
        cout << typeid(result - 0).name() << endl;// 查看result变量类型
        int count = 0;// 循环时使用
        while (result)
        {
            result_str = result; // char -> string
            printf("%s\n", result); // chat* 类型
            printf("%s\n", result_str.c_str()); // string类型
            result_array[count] = result_str.c_str(); //把string放入strng数组;
            cout <<"result_array:" << result_array[count] << endl;
            printf("\n");
            result = strtok(NULL, delim);// 第二次调用该函数strtok(NULL,","),第一个参数设置为NULL。结果返回分割依据后面的字串,即第二次输出windows
            count++;
        }
        return result_array; // 返回string数组
    }
    

    展开全文
  • 我们先来看一个简单的反转字符串的例子:上图是一段Python代码,它的功能是,接收任意长的字符串(第7行),将其反转(第8行),然后输出结果(第10-11行)。一共4行,短小精悍。运行程序,把dog(狗)变成了god(神):详细...

    对于初级程序员而言,算法和数据结构就是梦魇。幸运的是,Python提供各种数据类型功能,内置函数,以及内置数据结构。尤其对于初级编程而言,这些几乎是万能的。我们先来看一个简单的反转字符串的例子:

    上图是一段Python代码,它的功能是,接收任意长的字符串(第7行),将其反转(第8行),然后输出结果(第10-11行)。一共4行,短小精悍。运行程序,把dog(狗)变成了god(神):

    详细分析一下代码第8行红色横线标注的部分是如何反转字符串的。在此,先给大家介绍两个概念--字符串索引和切割。

    在Python中,没有单独的字符串类型,一个字符就是一个简单的长度为1的字符串,字符串的第一个字符索引为 0 。索引可以是负数,将导致从右边开始计算,最右边的字符索引为-1。字符串用单引号或双引号表示。因此,dog是一个长度为3的字符串,第一个字母d的索引为0或者-3,第三个字母g的索引为2或者-1。我们输出string[0]就会得到d,输出string[-1]就会得到g:

    索引用于获得单个字符,切片让你获得一个子字符串。切片用方括号[ ]和冒号:表示。我们输出string[0:2]就会得到子字符串do。注意,方括号[ ]中的索引区间是一个左闭右开的集合,包含起始字符(对应索引0),不包含末尾字符(对应索引2)。同大多数方法一样,切片的索引也有默认值。省略的第一个索引默认为零,即从字符索引0开始。省略的第二个索引默认到字符索引-1为止,注意,包括字符索引-1。同时省略第一个和第二个索引,意味着从字符串第一位到最后一位,等于将原字符串从头到尾原封不动的复制一遍:

    特别要介绍,省略的第三个参数表示步长,默认为1,数值可正可负,即按照多少个字符长度间隔着切割。图五是一些例子,第19行即是反转字符串。

    现在大家已经明白文章一开始的Python代码是如何反转字符串的,我们再来看看完成同样的任务,C++需要写多少行代码:

    是不是很惊愕?通过这个例子,大家已经对Python的 “简单,优雅”有了初步的了解。除了诸如字符串切片这样的功能,Python还提供很多内置数据结构,比如列表,字典,集合。这些数据结构也几乎是万能的。其实,切片也是列表里常用的功能之一。我们下一节将为大家介绍Python的内置数据结构。

    展开全文
  • 本文实例为大家分享了Python/C++实现字符串逆序的具体代码,供大家参考,具体内容如下 题目描述:将字符串逆序输出 Python实现一: 借助于列表的reverse()函数,需要注意的是,该函数没有返回值,只会让列表原地逆序...
  • c++实现split()字符串切片

    千次阅读 2015-05-02 14:00:09
    IDE是VS2013. #include #include #include using namespace std; vector split(const string& src, string separate_character) { vector strs;... int separate_characterLen = separate_character....//分割字符串

    IDE是VS2013.

    #include<iostream>
    #include <vector>
    #include<string>
    using namespace std;
    vector<string> split(const string& src, string separate_character)
    {
    	vector<string> strs;
    	int separate_characterLen = separate_character.size();//分割字符串的长度,这样就可以支持如“,,”多字符串的分隔符
    	int lastPosition = 0, index = -1;
    	while (-1 != (index = src.find(separate_character, lastPosition)))
    	{
    		strs.push_back(src.substr(lastPosition, index - lastPosition));
    		lastPosition = index + separate_characterLen;
    	}
    	string lastString = src.substr(lastPosition);//截取最后一个分隔符后的内容
    	if (!lastString.empty())
    		strs.push_back(lastString);//如果最后一个分隔符后还有内容就入队
    	return strs;
    }
    int _tmain(int argc, _TCHAR* argv[])
    {
    	string s = "12.45.78";
    	string del =".";
    	vector<string> strs = split(s,del);
    	for (int i = 0; i < strs.size(); i++)
    	{
    		cout << strs[i]<<' ';
    	}
    	cout << endl;
    	system("pause");
    	return 0;
    }
    运行结果:



    展开全文
  • 通过指定分隔符对字符串进行切片,并返回分割后的字符串列表(list ... 实现C语言字符串操作的库函数 包括基本的字符串复制 字符串长度 字符串比较等多种函数(C代码) 头文件 "mystring.h" #ifndef _MYSTR_H #define _...
  • c++字符串匹配之kmp

    2020-06-04 17:37:56
    写在前面:字符串匹配是要在主串里找模式串 字符串匹配啊,在kmp之前,你会先想到什么? 蛮力啊!!(一听就是超时の典型) 很好,复杂度呢?O(n×m)O(n\times m)O(n×m)。不用说滴。燃鹅如果是随机的数据。它也会...
  • C++字符串切割的两种方法

    万次阅读 多人点赞 2015-10-15 16:59:36
    字符串切割的使用频率还是挺高的,string本身没有提供切割的方法,但可以使用stl提供的封装进行实现或者通过c函数strtok()函数实现。1、通过stl实现涉及到string类的两个函数find和substr: 1、find函数 原型:...
  • string 字符串切片

    2021-05-18 13:45:18
    substr函数: string.substr(pos, n) 返回一个string,包含s中从pos开始的n个字符的拷贝(pos的默认值是0,n的默认值是s.size() - pos,即不加参数会默认拷贝整个s.../* c++ string 切片*/ # include <iostream>
  • c++截取部分字符串(类似python的切片)

    千次阅读 2019-06-15 10:47:13
    2.c++中使用一个函数来截取字符串位 头文件: #include <string> //注意没有.h string.h是C的标准字符串函数数,c++中一般起名为ctring. 而string头文件是C++字符串头文件。 函数原型: string...
  • c++ 字符串char[]数组分割split

    千次阅读 2020-08-28 16:30:35
    使用c++提供的strtok进行字符串数组分割,话不多说,上代码: #include <iostream> #include <string> #include <vector> using namespace std; int main() { vector<char*> res_split;//...
  • 主要提供一些字符串基础练习 #include <vector> #include <iostream> #include <string> using namespace std; template<class T> void _print(T arg) { cout << arg << ...
  • 今天再借LeetCode的题来了解一下字符串的常用操作——切片。对String来说,切片是一种引用形式的子串,所以它的效率很高。我们先看题目:58. 最后一个单词的长度 给定一个仅包含大小写字母和空格 ' ' 的字符串 s,...
  • 字符串是 Python 的基础数据类型。我们常用引号('或")来创建字符串字符串在程序中是最常用的数据类型之一。一、创建字符串创建字符串很简单,为变量分配一个值即可。如下:# 使用Python自带IDLE 运行以下语句,...
  • 背景遇到一个将字符串分割场景.以前从没有用c语言实现,都是使用python的split()函数,python处理起来很简单.split()方法语法:str.split(str="", num=string.count(str)).• str -- 分隔符,默认为所有的空字符,包括...
  • #include <iostream> #include <string> using namespace std; string reverse(const string& s, const char c) { string ret = ""; string substring; string::size_type start = 0, ... do{.
  • 本文代码地址​github.com字符串字符串是非常常用的数据类型,我们可以使用单引号和双引号来创建字符串,创建字符串非常简单,只需为变量赋予一个字符串值即可# a和b分别为用单引号和双引号创建的字符串 转移字符与...
  • 字符串定义字符串是由零个或多个字符组成的字符序列,需用单、双、三引号中的一种包裹,示例如下:a = '单引号'b = "双引号"# 三引号修饰的叫长字符串,可以直接换行书写(多行);# 长字符串中的换行,空格,缩进等...
  • 数组、字符串切片

    千次阅读 2019-08-24 16:42:56
    1.3 数组、字符串切片 在主流的编程语言中数组及其相关的数据结构是使用得最为频繁的,只有在它(们)不能满足时才会考虑链表、hash表(hash表可以看作是数组和链表的混合体)和更复杂的自定义数据结构。 Go语言中...
  • 本文介绍Go编程中经常用到的字符串、数组、切片的底层内存布局,以及基础数据类型字符串和复合数据类型数组、切片使用注意事项。符串、数组、切片内存布局string字符串字符串的内存布局如上图字符串实际上就是一个...
  • C++字符串的分割

    2017-09-25 22:01:07
    java中的字符串分割太强大了,最近发现原来C++中也能实现。 首先来看一个leetcode上的题[LeetCode] Simplify Path 简化路径 Given an absolute path for a file (Unix-style), simplify it.For example, path = ...
  • 在Python基础01之入门中,我们学习了Python...一、字符串基础字符串是 Python 中最常用的数据类型,它是一种不可变序列。可以使用引号来创建字符串,引号可以是'单引号'"双引号" '''三单引号''', """三双引号""",单...
  • 我有一个字符串大概是这种类型的:你好呀^201.202.201.201^。我本身只需要前面的中文呀,但是服务器却智障的给我加上了一个^201.202.201.201^,而且是每一个都有这个,我理所当然的就要去掉了。可是在进行操作的时候...
  • c++字符串进行切割

    2018-04-26 17:21:02
    对一个对inputstring进行切割,切分标志为字符串c,将对应的字符串转化为int型列表返回。 对一个对inputstring进行切割,切分标志为字符串c,返回切分后的子串列表。 对inputstring进行切割,切分标志为字符串c...
  • 字符串的创建字符串就是一系列字符,是 Python 中最常用的数据类型。在Python中,用引号括起的都是字符串,其中的引号可以是单引号(‘’),也可以是双引号(“”),如下所示:#字符串的创建str1='HelloWorld!'#单引号...
  • 序列类型有着相同的访问模式:它的每一个元素可以通过指定一个偏移量的方式得到。...String 字符串字符串是 Python 中最常用的数据类型之一,使用单引号或双引号(即'或")来创建字符串。转义字符#Ppri...
  • 题目描述 字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。...时间复杂度 O(N) : 其中 N为字符串 s 的长度,字符串切片函数为线性时间复杂
  • 题目描述 ...分析:该题比较容易,可以考虑直接用字符串切片函数str.substr(),代码如下: class Solution { public: string reverseLeftWords(string s, int n) { string str1=s.substr(0,n); string str

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,176
精华内容 3,270
关键字:

c++字符串切片

c++ 订阅