從字串中提取數字,然後按長度和字典序排列

2021-05-28 03:20:34 字數 1396 閱讀 3240

任意一串字串 字串裡包含數字部分和一般的字元

例如 ad2ef35adx1wewe76

注意這個字串 裡面有4個數字 分別是 1 2 35 76 不考慮大數

將數字按照從小到大排序 組成乙個新的字串

要求製作乙個函式來進行處理

假設是 fun(char*src,char*des)

src 輸入字串 ad2ef35adx1wewe76

des 輸出字串 1-2-35-76

第一步,建立乙個緩衝,刪除所有的字母

留下 2-35-1-76 這個應該沒什麼難度的.

再一步 使用 strtok ,

如果可以使用容器就比較簡單,往容器裡塞,然後容器排序

,如果不能使用容器,都要自己造輪子,哪就麻煩一點了

#include // 資料流輸入/輸出

#include // 字串類

#include // stl 通用演算法

#include // stl 動態陣列容器

#include #include #include #include #define token '-'

using namespace std;

bool strsize(const string& i, const string& j);

char* extraction_sequence(const char* src, char* des);

int main()

bool strsize(const string& i, const string& j) // 排序謂語函式

char* extraction_sequence(const char* src, char* des)

src++;

}*(c_buf - 1) = '\0'; // 封閉字串

/* 排序數字序列*/

vector seq;

vector ::iterator iter;

char* pch;

pch = strtok(buf, "-");

while (pch != null)

sort(seq.begin(), seq.end(), strsize); //按數字長度和大小排列

iter = seq.begin();

des[0] = '\0'; // des 清零

while (iter != seq.end())

des[strlen(des) - 1] = '\0'; // des 消除最後的 標記'-'

delete buf;

return ret;

}

從字串中提取數字

下面程式將字串中的連續數字提取出來,並存放到一維陣列中。比如說乙個字串 a284twx234 je3432 把 284 234 3432 這3個連續數字提取出來,分別存放到a 0 a 1 a 2 中。include include include int main buf i 0 sscanf bu...

sqlserver從字串中提取數字

可以通過寫自定義函式實現,以下提供兩種思路來解決 方法一 乙個乙個找出來 create function dbo fun getnumpart str nvarchar max returns nvarchar max asbegin declare start int declare end in...

從字串中提取數字 字元

import restring hello 16天11板的 number re.findall r d string 提取所有整數 print 所有數字 number number re.findall r 天 d string 提取指定字元後數字 print 指定字元後 number number...