暗黑计划-字符串

1.字符串string

1.1 字符串长度

string s

int s_len=strlen(s.c_str());

int s_len2=s.size();

1.2 截取字符串的一部分

string word = s.substr(起始, 长度);

1.3 插入空格

num为空格长度,sum为s的长度

string tmp(num, ' ');  

s = s.substr(0, sum)+tmp+s.substr(sum);  

sum+=num;  

1.4输入字符串

string s;

cin>>s;

1.5 26个字母一个访问数组,其中涉及到string向int的转换

int letter[26]={0};

int pos=s[j] - 97; //97='a'

letter[pos]++;

1.6 对很多行的string先进行冒泡排序去重,然后再将它们输出

vector<string> subString;

for(int i=0;i<subString.size();i++)//冒泡排序,并除去重复的元素
for(int j=0;j<subString.size()-i-1;j++)
{
if(subString[j]>subString[j+1])
{
swap(subString[j],subString[j+1]);
}
else if(subString[j]==subString[j+1])
subString.erase(subString.begin()+j,subString.begin()+j+1);
}
for(int i=0;i<subString.size();i++)
cout<<subString[i]<<endl;

1.7string由一个个的char构成

string ans;

ans+=(char)('0'+pad[now][last[now]]);

cout<<ans<<endl;

1.8 反向找斜杠\\并且把字符串后面的内容给保存了,用在路径找文件上这个方法真的很好。

string input;

unsigned int f = input.rfind('\\');
string file = input.substr(f + 1);

1.9 记录s1当中空格的个数

 

int n1=cout(s1.begin(),s1.end(),'')

比较牌大小,以一个排序,然后比较其中的顺序

string card="345678910JQKA2";

int l=card.find(s1[0]);

int r=card.find(s2[0]);

string ans=l>r?s1:s2;

cout<<ans<<endl;

1.11 hash可以用256长度的数组来统一记录这些字符

bool times[256] = {0};
string A;
times[A[i]];

1.12 在字符串当中寻找特定的字符串部分。比如下面就是计算str字符串当中“coder”的个数为多少。

int length=0;
int pos=str.find("coder");
while(pos!=-1){
       str=str.substr(pos+5);
       pos=str.find("coder");
       length++;
       }
if(length!=0)
      array.push_back(make_pair(str,length));  <strong> </strong>

1.13 找到一个特定的字符然后替换它

while(string::npos!=(p=A.find("%s")))\\也可以写成是!=-1
       A.replace(p,2,1,arg[q++])
    A=A.substr(0,pos)+arg[index++]+A.substr(pos+2);

1.14string真的是这样都可以  

reverse(str.begin(), str.end());
 string ans;
   while (!str.empty()) {
            ans.push_back(str.back());
            str.pop_back();
            if(judge(str))
                break;
        }
        reverse(ans.begin(), ans.end());

        return ans;

1.15输入,如果输入包含空格。就这样输入

        string str;
while (getline(cin, str)){
cout << str << endl;
}

2.1map映射,统计字符串个数的时候可以使用

map<string,int> word_count;
vector<string> words;
for(int i=0;i<words.size();i++)
	word_count [ words [ i ] ]++;
if ( word_count.find(word)!=word_count.end())\\找到了

2.2 血缘查水表

 map<pair<string,string>,vector<string>> data;
        data[make_pair("A" ,"A" )]={"A","O"};
        data[make_pair("A" ,"AB")]={"A","AB","B"};
        data[make_pair("A" ,"B" )]={"A","AB","B","O"};
        data[make_pair("A" ,"O" )]={"A","O"};
        data[make_pair("AB","AB")]={"A","AB","B"};
        data[make_pair("AB","B" )]={"A","AB","B"};
        data[make_pair("AB","O" )]={"A","B"};
        data[make_pair("B" ,"B" )]={"B","O"};
        data[make_pair("B" ,"O" )]={"B","O"};
        data[make_pair("O" ,"O" )]={"O"};
        pair<string,string> t=make_pair(father,mother);
        if (data.find(t)!=data.end()) return data[t];
        else return data[make_pair(mother,father)];


3.跳出循环

3.1.break

要跳出循环

3.2.continue

不用跳出循环

4.struct很常用,像什么身高体重然后要排序什么的。

struct player
{
    int w;
    int h;
};
bool com_w(player p1,player p2)
{
     //按照体重从小到大排序 
     if(p1.w != p2.w)
     	return p1.w <= p2.w;
     //在体重相等的条件下,身高高的在前(在上) 
     else
     	return p1.h>p2.h;
}
for(int i = 0;i<n;i++)</span>
        {
           player pt;
           cin>>index>>w>>h;
           pt.w = w;
           pt.h = h;
           p.push_back(pt);
        }  
        sort(p.begin(),p.end(),com_w);

4.最大公约数

int gcd(int a,int b){
    int tmp;
    while(b){
        tmp = b; b = a % b ; a = tmp;
    }
    return a;
}


 





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
牙科就诊管理系统利用当下成熟完善的SSM框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的Mysql数据库进行程序开发。实现了用户在线查看数据。管理员管理病例管理、字典管理、公告管理、药单管理、药品管理、药品收藏管理、药品评价管理、药品订单管理、牙医管理、牙医收藏管理、牙医评价管理、牙医挂号管理、用户管理、管理员管理等功能。牙科就诊管理系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。 管理员在后台主要管理病例管理、字典管理、公告管理、药单管理、药品管理、药品收藏管理、药品评价管理、药品订单管理、牙医管理、牙医收藏管理、牙医评价管理、牙医挂号管理、用户管理、管理员管理等。 牙医列表页面,此页面提供给管理员的功能有:查看牙医、新增牙医、修改牙医、删除牙医等。公告信息管理页面提供的功能操作有:新增公告,修改公告,删除公告操作。公告类型管理页面显示所有公告类型,在此页面既可以让管理员添加新的公告信息类型,也能对已有的公告类型信息执行编辑更新,失效的公告类型信息也能让管理员快速删除。药品管理页面,此页面提供给管理员的功能有:新增药品,修改药品,删除药品。药品类型管理页面,此页面提供给管理员的功能有:新增药品类型,修改药品类型,删除药品类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值