日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++中常用字符串相关的编程题

發布時間:2024/9/27 c/c++ 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++中常用字符串相关的编程题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

索引

找出字符串中的數字,字母和符號,并分別存儲

找出字符串中所有不重復的字符,并輸出

統計字符串中每個字符的個數,并輸出

編譯環境

以下所用的開發環境是vs2010,創建的都為控制臺輸出程序。下面只貼出創建項目后修改了的cpp文件,即主要實現,其它文件保持自動生成的不變。

示例1-找出字符串中的數字,字母和符號,并分別存儲

項目結構

具體的實現如下:

// sortTest.cpp : 定義控制臺應用程序的入口點。 //#include "stdafx.h" #include <iostream> #include <vector> #include <stdlib.h>using namespace std;/************************************************************************/ /* 找出字符串中的數字,字母和符號,并分別存儲 * 不足:輸出的數字是其數字字符的十進制,沒有按照字符輸出/ /************************************************************************/int getCharType(char c) {int nType = 0;if(c >= 48 && c <= 57){nType = 1;}else if (c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z'){nType = 2;}else{nType = 3;}return nType; }void storeToVec(const char c,vector<int> &nVec,vector<char> &cVec,vector<char> &scpaceVec){int type = getCharType(c);switch(type){case 1:nVec.push_back(c);break;case 2:cVec.push_back(c);break;case 3:scpaceVec.push_back(c);break;default:break;} }template<typename T> void printVec(const vector<T> vec){cout<<"================================="<<endl;vector<T>::const_iterator it = vec.begin();for (;it != vec.end();++it){cout<<(char)*it<<"\t";}cout<<endl; }void sortString(const char *parr){int i = 0;vector<int> nVec;//存儲0-9數字vector<char> cVev;//存儲a-z或A-Z的字符vector<char> spaceVec;//存儲回車符等while (parr[i] != '\0'){storeToVec(parr[i],nVec,cVev,spaceVec);++i;}printVec<int>(nVec);printVec<char>(cVev);printVec<char>(spaceVec); }int _tmain(int argc, _TCHAR* argv[]) {const char array[] = "sdgygy7764s22dfsjhhj#!@kdf*";sortString(array);system("pause");return 0; }

運行結果如下:

示例2-找出字符串中所有不重復的字符,并輸出

項目結構

實現代碼如下:

// stringUniqueOutTest.cpp : 定義控制臺應用程序的入口點。 //#include "stdafx.h" #include <iostream> #include <vector> #include <stdlib.h>using namespace std;/************************************************************************/ /* 找出字符串中所有不重復的字符,并輸出 */ /************************************************************************/void compareExist(vector<char> &c,char sc){bool flag = false;for(int i = 0; i < c.size(); ++i){if(sc == c[i]){flag = true;break;}}if(!flag){c.push_back(sc);} }void printVec(const vector<char> vec){vector<char>::const_iterator it = vec.begin();while(it != vec.end()){cout<<*it<<"\t";++it;}cout<<endl; }void printSingleChar(const char *parr){int i = 0;vector<char> cVec;if(parr[i] != '\0'){cVec.push_back(parr[i]);++i;} while (parr[i] != '\0'){compareExist(cVec,parr[i]);++i;}printVec(cVec); }int _tmain(int argc, _TCHAR* argv[]) {const char srray[] = "hudfyegtysdsgftfsd";printSingleChar(srray);system("pause");return 0; }

運行結果如下:

示例3-統計字符串中每個字符的個數,并輸出

項目結構

實現代碼如下:

// countCharNumberTest.cpp : 定義控制臺應用程序的入口點。 //#include "stdafx.h" #include <iostream> #include <vector> #include <stdlib.h>using namespace std;/************************************************************************/ /* 統計字符串中每個字符的個數,并輸出 */ /************************************************************************/bool findCharIsInVec(vector<char> &vec,char c){vector<char>::const_iterator it = vec.begin();for(;it != vec.end(); ++it){if (*it == c){return true;}}return false; }void charOccurNumber(int &count,char c,const char *parr,int i,int nSize){for (int n = i + 1; n < nSize; ++n){if(c == parr[n]){++count;}} }void CountChar(const char * parr){vector<char> cVec;int count = 0;int i = 0;int nSize = strlen(parr);//求字符串的長度while (parr[i] != '\0'){if(!cVec.empty()){bool ret = findCharIsInVec(cVec,parr[i]);if (ret){++i;continue;}}++count;charOccurNumber(count,parr[i],parr,i,nSize);cout<<"字符"<<parr[i]<<"出現的次數:"<<count<<endl;cVec.push_back(parr[i]);count = 0;} }int _tmain(int argc, _TCHAR* argv[]) {const char starr[] = "hudhfuhuheweashjhjdsfsd";CountChar(starr);system("pause");return 0; }

運行結果如下:


示例3的第二種實現:

#include "stdafx.h" #include <iostream> #include <stdlib.h>using namespace std;/************************************************************************/ /* 統計字符串中每個字符的個數,并輸出 */ /************************************************************************/ void showCharNums(const char* pArr) {if(pArr==NULL)return;char ascii[256] = {0};int nLen = strlen(pArr);for (int i=0;i<nLen;++i){ascii[pArr[i]]++;//ascii[pArr[i]] = ascii[pArr[i]] + 1}for (int i=0;i<256;++i){if (ascii[i]>0){cout<<(char)i<<" : "<<(int)ascii[i]<<endl;}} }int _tmain(int argc, _TCHAR* argv[]) {const char starr[] = "hudhfuhuheweashjhjdsfsd";CountChar(starr);cout<<"========================================="<<endl;showCharNums(starr);system("pause");return 0; }

運行結果

總結

以上是生活随笔為你收集整理的C++中常用字符串相关的编程题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。