文字處理用c還是用python

joytoy發表於2021-09-11

文字處理用c還是用python

文字處理python與c的對比:如下

c++語言:

C++語言實現C++中沒有實現split功能的函式,下面用C++ STL中的一些函式模擬實現split功能。#include <iostream>#include <string>#include <vector>#include <fstream>using namespace std;/*
@in, src: 待分割的字串
@in, delim: 分隔符字串
@in_out, dest: 儲存分割後的每個字串
*/void split(const string& src, const string& delim, vector<string>& dest){
string str = src;
string::size_type start = 0, index;
string substr;
index = str.find_first_of(delim, start);//在str中查詢(起始:start) delim的任意字元的第一次出現的位置
while(index != string::npos)
{
substr = str.substr(start, index-start);
dest.push_back(substr);
start = str.find_first_not_of(delim, index);//在str中查詢(起始:index) 第一個不屬於delim的字元出現的位置
if(start == string::npos) return;
index = str.find_first_of(delim, start);
}}int main(){
ifstream infile("test.txt", ios::in);
vector<string> results;
string word;
string delim(" ");
string textline;
if(infile.good())
{
while(!infile.fail())
{
getline(infile, textline);
split(textline, delim, results);
}
}
infile.close();
vector<string>::iterator iter = results.begin();
while(iter != results.end())
{
cout<<*iter++<<endl;
}
return 0;}

python語言:

在Python中有專門的函式split()對字串進行分割,實現較為簡單myfile = open('test.txt', 'r')allWords = []line = myfile.readline()while line:
list = line.split(' ')
for word in list:
if word[-1]=='n':
allWords.append(word[:-1])#去掉行末的'n'
else:
allWords.append(word)
line = myfile.readline()myfile.close()print allWords

相比較而言,(拋開執行效率不說),開發效率比較好的是Python,然後是c++,(但是一旦c++這些方法提前包裝好了,也是很不錯的)。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4650/viewspace-2833396/,如需轉載,請註明出處,否則將追究法律責任。

相關文章