c++如何分割字符串示例代码

话不多说,直接上代码

如果需要根据单一字符分割单词,直接用getline读取就好了,很简单

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

 int main()
 {
   string words;
   vector<string> results;
   getline(cin, words);
   istringstream ss(words);
   while (!ss.eof())
   {
     string word;
     getline(ss, word, ',');
     results.push_back(word);
   }
   for (auto item : results)
   {
     cout << item << " ";
   }
 }

如果是多种字符分割,比如,。!等等,就需要自己写一个类似于split的函数了:

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

 vector<char> is_any_of(string str)
 {
   vector<char> res;
   for (auto s : str)
     res.push_back(s);
   return res;
 }

 void split(vector<string>& result, string str, vector<char> delimiters)
 {
   result.clear();
   auto start = 0;
   while (start < str.size())
   {
     //根据多个分割符分割
     auto itRes = str.find(delimiters[0], start);
     for (int i = 1; i < delimiters.size(); ++i)
     {
       auto it = str.find(delimiters[i],start);
       if (it < itRes)
         itRes = it;
     }
     if (itRes == string::npos)
     {
       result.push_back(str.substr(start, str.size() - start));
       break;
     }
     result.push_back(str.substr(start, itRes - start));
     start = itRes;
     ++start;
   }
 }

 int main()
 {
   string words;
   vector<string> result;
   getline(cin, words);
   split(result, words, is_any_of(", .?!"));
   for (auto item : result)
   {
     cout << item << ' ';
   }
 }

例如:输入hello world!Welcome to my blog,thank you!

以上就是c++如何分割字符串示例代码的全部内容,大家学会了吗?希望本文对大家使用C++的时候有所帮助。

(0)

相关推荐

  • c语言中字符串分割函数及实现方法

    1.问题引入 自己在写一个linux下的模拟执行指令的时候,遇到了输入"cat a.c",要将该字符串分解成cat和a.c两个单独的字符串,虽然知道有strtok的存在,但是想自己尝试写一下,于是就自己写了一个,不过总是遇到这样或那样的问题,虽然最后调通了,不过确浪费了不少时间:后来作业交上去以后又仔细阅读了strtok函数,发现原来linux下已经改成strsep,所有在这里就写一下自己所走的过程. 2.自己写的字符串分割函数:用于分割指令,比如cat a.c最后会被分割成cat和a

  • 浅谈C语言的字符串分割

    说起来很有意思,自认为对C语言理解得还是比较深刻的.但居然到今天才知道有个strtok函数,试用了一下突然感慨以前做了多少重复劳动.每次需要解析配置文件,每次需要分割字符串,居然都是自己去分割字符串,既累人又容易出错.感概技术学得不够全面啊!这里引用一段strtok用法: The strtok() function returns a pointer to the next "token" in str1, where str2 contains the delimiters that

  • C++常用字符串分割方法实例汇总

    本文实例汇总了C++常用字符串分割方法,分享给大家供大家参考.具体分析如下: 我们在编程的时候经常会碰到字符串分割的问题,这里总结下,也方便我们以后查询使用. 一.用strtok函数进行字符串分割 原型: char *strtok(char *str, const char *delim); 功能:分解字符串为一组字符串. 参数说明:str为要分解的字符串,delim为分隔符字符串. 返回值:从str开头开始的一个个被分割的串.当没有被分割的串时则返回NULL. 其它:strtok函数线程不安全

  • JavaScript字符串对象split方法入门实例(用于把字符串分割成数组)

    JavaScript split 方法 split 方法用于将字符串分割为字符串数组并返回该数组.其语法如下: 复制代码 代码如下: str_object.split(separator, limit) 参数说明: 参数 说明 str_object 要操作的字符串(对象) separator 必需.分隔符,字符串或正则表达式,从该参数指定的地方分割 str_object limit 可选.指定返回的数组的最大长度.如果设置了该参数,返回的子串不会多于这个参数指定的数组.如果省略该参数,则符合规则

  • C语言中计算字符串长度与分割字符串的方法

    C语言strlen()函数:返回字符串的长度 头文件: #include <string.h> strlen()函数用来计算字符串的长度,其原型为: unsigned int strlen (char *s); [参数说明]s为指定的字符串. strlen()用来计算指定的字符串s 的长度,不包括结束字符"\0". [返回值]返回字符串s 的字符数. 注意一下字符数组,例如 char str[100] = "http://see.xidian.edu.cn/cpp

  • JavaScript中字符串分割函数split用法实例

    本文实例讲述了JavaScript中字符串分割函数split用法.分享给大家供大家参考.具体如下: 先来看下面这段代码: <script type="text/javascript"> var str="How are you doing today?" document.write(str.split(" ") + "<br />") document.write(str.split("&q

  • 一个JavaScript用逗号分割字符串实例

    //用逗号隔开字符串成数组打印. <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>每天一个JavaScript实例-分割字符串</title> <script> window.onload = function(){ var keywordList = prompt("输入字符,用&

  • javascript字符串替换及字符串分割示例代码

    JS(JavaScript)字符串替换函数(有点像PHP的preg_replace) str.replace('xxx', 'yyyy'); 替换第一个 str.replace(/xxx/g, 'yyyy'); 替换全部 字符串分割(类似PHP的分割函数) 复制代码 代码如下: var test = 'a-b-c-d'; test.split('-');

  • JScript分割字符串示例代码

    不废话了,直接用代码说明吧: 复制代码 代码如下: try { var ss = new Array(); var str="123,4567,89,0"; ss = str.split(","); // 以逗号为分割符 for(i=0;i<ss.length;i++) WScript.Echo(ss[i]); } catch(e) { WScript.Echo(e.description); }

  • c++如何分割字符串示例代码

    话不多说,直接上代码 如果需要根据单一字符分割单词,直接用getline读取就好了,很简单 #include <iostream> #include <vector> #include <string> #include <sstream> using namespace std; int main() { string words; vector<string> results; getline(cin, words); istringstre

  • golang实现数组分割的示例代码

    需求:给定一个数组和一个正整数,要求把数组分割成多个正整数大小的数组,如果不够分,则最后一个数组分到剩余的所有元素. 示例1: 数组:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10],正整数:2 期望结果: [[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]] 示例2: 数组:[1, 2, 3, 4, 5, 6, 7, 8, 9],正整数:2 期望结果: [[1, 2], [3, 4], [5, 6], [7, 8], [9]] 下面是我的实现代码:

  • js冒泡法和数组转换成字符串示例代码

    js代码: 复制代码 代码如下: window.onload = function(){ var mian = document.getElementById( "mian" ); var mian1 = document.getElementById( "mian1" ); var str = mian.innerHTML; var arry = []; var len = str.length; for( var i = 0; i < len; i++ )

  • 在JS中解析HTML字符串示例代码

    在js中直接添加html语句,js会将html字符串解析成相应的HTML语句,并在前端进行显示. 复制代码 代码如下: <span style="font-size:14px;">var el = document.createElement( 'div' ); el.innerHTML = "<html><head><title>titleTest</title></head><body>&

  • 父节点获取子节点的字符串示例代码

    1.JavaScript方法:document.getElementById("id").innerHTML; (1)实例说明 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="h

  • 通过dom4j解析xml字符串(示例代码)

    复制代码 代码如下: import java.util.Iterator;import java.util.List;import org.dom4j.Attribute;import org.dom4j.Document;import org.dom4j.DocumentHelper;import org.dom4j.Element;public class Test { @SuppressWarnings("unchecked") public static void main(S

  • js substring从右边获取指定长度字符串(示例代码)

    如下所示: 复制代码 代码如下: /* Get the rightmost substring, of the specified length, from a String object. */ String.prototype.right = function (length_) { var _from = this.length - length_; if (_from < 0) _from = 0; return this.substring(this.length - length_,

  • MySQL查询字段实现字符串分割split功能的示例代码

    目录 问题背景 场景模拟 方法实现 SUBSTRING_INDEX LENGTH REPLACE SQL解析 问题背景 查询MySQL中用逗号分隔的字段[a,b,c]是否包含[a] 场景模拟 现有表[ec_logicplace],如下图所示: 要求判断数值[1]是否存在于表[ec_logicplace]中的[actual_place_id]中 方法实现 首先将[actual_place_id]字段用逗号拆分查询出来 通用模板为: SELECT SUBSTRING_INDEX( SUBSTRING

  • Java 分割字符串详解及实例代码

     Java 分割字符串 java.lang.String 的 split() 方法, JDK 1.4 or later public String[] split(String regex,int limit) 示例代码 public class StringSplit { public static void main(String[] args) { String sourceStr = "1,2,3,4,5"; String[] sourceStrArray = sourceSt

随机推荐