1. 程式人生 > >C++ 將string字串按照特殊的多個字元分割

C++ 將string字串按照特殊的多個字元分割

遇到一個任務,將使用者的時間對比,然後給出差值。其中需要將string格式的時間組裝成一個time_t型別。使用者的輸入格式是“2014-11-10 9:09:32.111”。為了組裝,我必須將他們全部分割。其中發現大部分人都是按照某一個特定的字元分割的,而其還比較複雜,我想這樣做效率肯定低下。因此,自己寫了一個,供大家參考:

#include<iostream>
#include<string.h>
#include<vector>
using namespace std;
vector<string> split(string strTime)
{
    vector<string> result;
    string temp("");
    strTime+='-';//字串結束標記,方便將最後一個單詞入vector
    for(size_t i = 0; i < strTime.size(); i++)
    {
        if(strTime[i] == '-' || strTime[i] == '.' || strTime[i] == ' ' ||strTime[i] == ':')
        {
            result.push_back(temp);
            temp = "";
        }
        else
        {
            temp += strTime[i];
        }
    }
    return result;
}

int main()
{
    string strtime="2014-11-10 14:55:40.123";
    vector<string> result = split(strtime);
    for(size_t i = 0; i < result.size(); i++)
    {
        cout<<result[i]<<"  ";
    }
    return 0;
}

想上面這樣,就可以將一個string按照一組字元分割了。分割後可以組裝到其他結構中,比如struct tm中的年月日等就是用上述分割後的欄位填充的。

相關推薦

C++ string字串按照特殊字元分割

遇到一個任務,將使用者的時間對比,然後給出差值。其中需要將string格式的時間組裝成一個time_t型別。使用者的輸入格式是“2014-11-10 9:09:32.111”。為了組裝,我必須將他們全部分割。其中發現大部分人都是按照某一個特定的字元分割的,而其還比較複雜,我

python中一次替換字串中的字元

先直接上解決方案: 比如下面給出的字串a,有字母、'(單引號)、\n(換行符)、數字、:(冒號)、,(逗號),目標是隻保留字串中的數字和字母,且看我如何操作。 import re a='eew \' eawr,2 fd\n sa:21' b=re.sub(r'[\':\s ,]*', ''

8.7 有一字串,包含n字元。寫一個函式,字串從第 m字元開始的全部字元複製成為另一個字串

8.7 有一字串,包含n個字元。寫一個函式,將此字串從第 m個字元開始的全部字元複製成為另一個字串。個人程式碼如下:#include<stdio.h> #include<string.

Python基礎-用字元分割字串

Python的str類有split方法,但是這個split方法只能根據指定的某個字元分隔字串,如果要同時指定多個字元來分隔字串,該怎麼辦呢? 採用正則表示式: 幸運的是python的re模組中提

javascript字串中的空格替換為一個空格的正則例項

原文章路徑:https://www.jb51.net/article/101324.html 本部落格主要實現用javascript將字串中的多個空格替換為一個空格的正則例項,需要的朋友可以參考下 javascript將字串中的多個空格縮減為一個空格程式碼例項: 在實際應用中可能有

ACMNO.40 C語言-子串 有一字串,包含n字元。寫一函式,字串中從第m字元開始的全部字元複製成為另一個字串

題目描述 有一字串,包含n個字元。 寫一函式,將此字串中從第m個字元開始的全部字元複製成為另一個字串。 輸入 數字n 一行字串 數字m 輸出 從m開始的子串 樣例輸入 6 abcdef 3 樣例輸出 cdef 來源/分類 C語言

PHP parse_str 字串解析成變數 丟失資料

void parse_str ( string $encoded_string [, array &$result ] ) 如果 encoded_string 是 URL 傳遞入的查詢字

在mySQl中,SQL語言允許使用萬用字元進行字串匹配的操作,其中“%”不能表示()。A.0字元B.一個字元C.字元D.搜尋關鍵字中包含字元“%”

加粗樣式@TOC 歡迎使用Markdown編輯器 你好! 這是你第一次使用 Markdown編輯器 所展示的歡迎頁。如果你想學習如何使用Markdown編輯器, 可以仔細閱讀這篇文章,瞭解一下Markdown的基本語法知識。 新的改變 我們對Markdown編輯

c語言】一個字串,包含n字元字串中從第m字元開始的全部字元複製成為另一個字串

#include <stdio.h> #include <string.h> int main() { void copystr(char *,char *,int); int m; char str1[20],str2[20]; print

字串中的連在一起的空格變成單個空格

如:"aa    bb         cc       dd           ee            ff"變成"aa bb cc dd ee ff" 正則表示式實現 String st

C++ string轉換成char*字符串

AR string轉換 字符 str 兩種 c++ 情況 adc 需要 我們經常會使用C和C++的混合編程,在某些情況下,需要將C++的string,轉換成char* 的字符串。下面說兩種可行的方法,作為總結。 1. data(); 如: string str="abc";

SQL 一條記錄中字段的值拼接為一個字段 && 行數據合並成一行,並且拼接CONVERT() 、for xml path的使用

varchar start 技術分享 現在 date rom 結果 技術 ont 接著上篇文章的訂單表(商品編號,價格設置時間id(類似於創建時間,創建時間約早,則act_id越小) ,價格的時間段,商品價格) 一、將一條記錄中多個字段的值拼接為一個字段 現要求將兩個時間

有一字串,包含n字元。寫一函式,字串中從第m字元開始的全部字元複製成為另一個字串

import java.util.Scanner; public class Main {     public static void main(String[] args) {         Scanne

什麼時候應該應用程式切分為容器?

圍繞著應該將應用程式的哪些部分切分為多個容器以及為什麼要這樣做,存在著很多困惑。我最近對Docker使用者郵箱列表的迴應促成了今天的文章。在這篇文章中我打算評估一個映象化的Java應用程式,它歷史上曾經執行在一個單一的Tomcat伺服器裡,並解釋為什麼我會把它切分為獨立的容器。為了讓事情有趣

java程式碼一個數組分為等長度的陣列

首先這個是為了實現一次請求的資料量不會由於返回的資料量過大導致記憶體溢位,所以分批獲取   @SuppressWarnings("unused") public static List<String> getList(int targ,List<String

python 元組解析為引數

  #create a tuple tuplex = 4, 8, 3 print(tuplex) n1, n2, n3 = tuplex #unpack a tuple in variables print(n1 + n2 + n3) #the number of variables mus

string字串轉化為16進位制字串

    std::string ConverToHexString(const char *in_pData,unsigned int in_uiLen)     {         std::string

VS程式設計,C#中string字串過長,回車換行寫在不同的行的一種方法。

1、使用@對字串進行轉義。 “”雙引號裡裡面的特殊字元不再具有轉義功能,例如\n不再被轉義成換行符。 2、使用@對字串進行轉義,若字串中包含雙引號,則需要在雙引號外,再加一個雙引號以區分。 例如: string sqlString =

(七)RabbitMQ訊息佇列-通過fanout模式訊息推送到Queue中

前面第六章我們使用的是direct直連模式來進行訊息投遞和分發。本章將介紹如何使用fanout模式將訊息推送到多個佇列。 有時我們會遇到這樣的情況,多個功能模組都希望得到完整的訊息資料。例如一個log的訊息,一個我們希望輸出在螢幕上實時監控,另外一個使用者持久化日誌。這時就可以使用fano

c/c++ 一條語句中包含i++時程式的執行情況

今天覆習高精度時,遇到了個小坑,於是試驗了下。 #include<iostream> using namespace std; int main() { int i = 1; int a[8] = {0, 1, 2, 3, 4, 5, 6, 7};//別忘