1. 程式人生 > 實用技巧 >為Dark模擬做出的一些微小的貢獻

為Dark模擬做出的一些微小的貢獻

這幾周經過liners大佬的指導,發現自己的程式碼實現能力確實太過於垃圾,所以根據他的指示,我應該去多多練習一下Dark模擬,但是最近剛剛入手Dark模擬的我感到非常的吃力,所以本人今天寫部落格一篇來講述一下一些在做Dark模擬之前我們先要學會的一些操作。要想學好Dark模擬,字串這部分內容是少不了的。

字串的輸入:

如何使用getline讀入字串(char)

這裡我們主要講一講比char型別更強大的string型別的用法

首先我們要學習string型別還是必須瞭解他的輸入。

我們這裡輸入採用getline() 具體實現方法如下:

#include<bits/stdc++.h>
using namespace std;
string s1;
int main()
{
getline(cin,s1);
cout<<s1;
return 0;
}

然後getline也支援第三個關鍵字,我們在要讀入string型別後再加一個關鍵字,就可以以該關鍵字為結點關閉讀入。

eg:

#include<bits/stdc++.h>
using namespace std;
string s1;
int main()
{
getline(cin,s1,'E');
cout<<s1;
return 0;
}

然後下面再來介紹一下基本的string型別的建構函式:

**1、直接構造 **

eg:string s1("Lottery Winner");

2、用某字元進行填充

eg:string s2(20,'s');
執行結果:ssssssssssssssssssss

3、從另一字串的第n位往後進行復制

eg:	string s33(s1,8);或者string s3(s1);
執行結果:Winner和Lottery Winner

4、巧用=

我們可以使用+=把兩個字串合在一起
例如:
s1="Lottery";
s2=" Winner";
s3=s1+s2;
所以s3=Lottery Winner

5、巧用+=

其實和=的功能非常的相似,這裡就不在贅述

6、字串型別複製轉char型別

//caition:不要和上面的弄混了!!!!
char cs[]="12345";
string s7(cs,3);//複製字串cs的前3個字元到s當中
cout<<s7;

最後來一個總的:

#include<bits/stdc++.h>
using namespace std;
int main()
{
cout<<"string 型別的常見建構函式"<<endl;
string s1("Lottery Winner");
cout<<s1<<endl;
string s2(20,'S');
cout<<s2<<endl;
string s3(s1);
string s33(s1,8);
cout<<s3<<endl;
cout<<s33<<endl;
string s4;
s4=s33+s2;
cout<<s4<<endl;
//caition:不要和上面的弄混了!!!!
char cs[]="12345";
string s7(cs,3);//複製字串cs的前3個字元到s當中
cout<<s7;
}

執行結果如下:

下面在歇一歇關於substr的用法,因為比較簡單,我在這裡就不用多說了,相信大家看一下幾行的程式碼一下子就理解了:

程式碼如下:

#include<bits/stdc++.h>
using namespace std;
int main()
{
cout<<"substr的用法"<<endl;
string s1="abcdefg";//記住標號從0開始
string s2=s1.substr(1,5);//把標號從1~5複製給s2
cout<<s2<<endl;
string s3=s1.substr(4);//從標號4開始往後把s2從標號4開始的字尾存入s3
cout<<s3<<endl;
return 0;
}

執行結果如下:

相信大家應該都懂了!