索引

找出字符串中的数字,字母和符号,并分别存储

找出字符串中所有不重复的字符,并输出

统计字符串中每个字符的个数,并输出

编译环境

以下所用的开发环境是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++中常用字符串相关的编程题相关推荐

  1. php中split的使用,php中常用字符串的用法总结 - split

    php分割函数preg_split()函数.用法.例子.参数说明 preg_split 定义和用法 preg_split() 函数通过一个正则表达式分割字符串. 相关函数:spliti(),str_s ...

  2. C语言中常用字符串处理函数(总结大全)

    目录 字符串处理函数 1.char *gets(char *s); 2. char *fgets(char *s, intsize, FILE *stream); 3. int puts(const ...

  3. java中的字符串相关知识整理

    字符串为什么这么重要 写了多年java的开发应该对String不陌生,但是我却越发觉得它陌生.每学一门编程语言就会与字符串这个关键词打不少交道.看来它真的很重要. 字符串就是一系列的字符组合的串,如果 ...

  4. Java字符串的重要性_java中的字符串相关知识整理

    字符串就是一系列的字符组合的串,如果写过C/C++的应该就了解,在字符串的操作上会有许多操作的函数与类,用于简化代码的开发.一方面是因为字符串在代码中会频繁用到,另一方面是因为字符串的操作非常麻烦. ...

  5. C中常用字符串处理函数

    1.puts函数 功能:输出字符串,里面传入数组名,也可以直接传入字符串(用双引号包围起来). char str[5]="haha";  puts(str);   puts(&qu ...

  6. Python中常用字符串 函数-转

    转自http://blog.csdn.net/jiangnanandi/archive/2008/10/09/3041964.aspx 在python有各种各样的string操作函数.在历史上stri ...

  7. Delphi中常用字符串处理函数

    1.copy(str,pos,num) 从str字符串的pos处开始,截取num个字符的串返回. 假设str为'abcdef',copy(str,3,2)='cd',copy(str,4,10)='d ...

  8. php开发中常用字符串函数总结

    1. strlen() 计算字符串长度 2. substr 截取字符串,采用 起点-长度方式. //特例需要记住 取字符串除了最后一位的所有字符 $rest = substr("abcdef ...

  9. 【python基础】python中常用字符串函数详解

    文章目录 1 字符串查询(index,find) 2. 字符串大小写转换操作(upper.lower.swapcase.capitalize和title) 3. 字符串对齐(center,just和z ...

最新文章

  1. Jenkins实现SVN+Maven+Java项目的持续集成
  2. 在layui中使用ajax传值给后台,浅谈layui 数据表格前后台传值的问题
  3. linux用户态驱动--VIFIO、IOMMU、UIO(二)
  4. Linux下不同服务器间数据传输
  5. 神经网络入门(最通俗的理解神经网络)
  6. [Skill]-Markdown编辑器技巧
  7. 《Java程序设计》 第五周学习总结
  8. 开发 自我介绍_对于开发者来说,自我是敌人
  9. 电子邮件地址验证:详细解释,生产质量WPF文本框代码
  10. 新 CEO 谈论GitHub 被微软接管后的未来
  11. LeetCode学习记录(4-6)
  12. 《Android 第1行代码》读后感—第11章【Android 特色开发——基于位置的服务】
  13. abb机器人伺服电机报闸是什么_什么是抱闸电机
  14. R语言 rgl plot3d函数
  15. 文献调研(九):基于rough set理论和深度学习算法的建筑能耗预测模型
  16. 小程序 wepy+MinUI
  17. uniapp (H5、小程序、app)地图导航
  18. flutter gridview item 有空隙
  19. 山东大学2018-2019年第二学期 数据仓库数据挖掘 期末考试题 回忆版
  20. 【论文阅读】Decision Transformer: Reinforcement Learning via Sequence Modeling

热门文章

  1. Redis 7.0 Multi Part AOF的设计和实现
  2. 聚焦数字化智慧安防的新型社区
  3. Node.js 应用故障排查手册 —— 雪崩型内存泄漏问题
  4. 100行Python代码理解深度学习关键概念:从头构建恶性肿瘤检测网络
  5. PostgreSQL 查询涉及分区表过多导致的性能问题 - 性能诊断与优化(大量BIND, spin lock, SLEEP进程)
  6. Gartner 最新预测:全球云收入将超非云收入,云原生、低代码、SASE 继续普及
  7. 一行代码,揭开 CPU 执行原理!
  8. 李飞飞:阿里云数据库已做好全面服务政企市场的准备
  9. Java面试高频题:Spring Boot+JVM+Nacos高并发+高可用已撸完​
  10. 智算中心新基建 浪潮首发智算中心操作系统