字串輸入輸出
getchar()與putchar()
#include //#include using namespace std;
int main()
}
兩種輸入方式
scanf("%c",&x); 只讀取乙個字元
scanf("%s",&x);遇到空格,換行才會停止
cin與scanf("%s",&x)的作用大致相同
c:char st[100];
1. 字串長度
strlen(st);
2. 字串比較
strcmp(st1,st2);
strncmp(st1,st2,n); 把st1,st2的前n個進行比較。
3. 附加
strcat(st1,st2);
strncat(st1,st2,n); n表示連線上st2的前n個給st1,在最後不要加'\0'。
4. 替換
strcpy(st1,st2);
strncpy(st1,st2,n); n表示複製st2的前n個給st1,在最後要加'\0'。
5. 查詢
where = strchr(st,ch) ch為要找的字元。
where = strspn(st1,st2); 查詢字串。
c++:
string str;
1. 字串長度
len = str.length();
len = str.size();
2. 字串比較
可以直接比較
也可以:
str1.compare(str2);
str1.compare(pos1,len1,str2,pos2,len2); 值為負,0 ,正。
3. 附加
str1 += str2;
或4. 字串提取
str2 = str1.substr();
str2 = str1.substr(pos1);
str2 = str1.substr(pos1,len1);
5. 字串搜尋
where = str1.find(str2);
where = str1.find(str2,pos1); pos1是從str1的第幾位開始。
where = str1.rfind(str2); 從後往前搜。
6. 插入字串
不是賦值語句。
str1.insert(pos1,str2);
str1.insert(pos1,str2,pos2,len2);
fgets函式
函式原型:char * fgets(char * s, int n,file *stream);
引數:
s: 字元型指標,指向儲存讀入資料的緩衝區的位址。
n: 從流中讀入n-1個字元
stream : 指向讀取的流。
stringstream的使用,stringstream以前使用的時候還不覺得它很有用,但用的次數多了以後,就感覺到了它的用處,最大的作用就是分割字串了,目前來講。
一下就是一道題的輸入**,輸入若干行整數,每行若干個整數,先用getline一行一行的讀進來再切割。
string line;
if(!getline(cin,line)) return false;
stringstream ss(line);
n=0;
int x;
while(ss>>x) a[n++]=x;
sscanf函式
sscanf(要輸入的字串,格式,接受的變數)
sscanf(&s[1],"%d",&v);
字串總結?
其實就是模板彙總好伐 1 字串hash 可以解決一切字串問題。複雜度成迷。include using namespace std define maxn 10000 define read x scanf d x define maxm 1500 define ull unsigned long l...
字串總結
1 找出回文子串 分析 對於回文子串,最深的印象就是正序和倒序產生的字元相同。其實更深刻的表述方式應該是去除首尾字元後,裡面的依然是個回文子串。這一點也是我沒有想到的。利用動態規劃,相當於乙個遞迴歸納的想法,只要s i 1 j 1 是個回文子串,那麼在s i s j 時,s i j 就是個回文子串。...
字串 總結
一級目錄 輸入字元 cin 不得輸入空格 a getchar 可輸入空格 可輸入空格 gets a fgets a,sizeof a stdin 注意 當使用gets 和fgets 給字元陣列賦值時,前面如果使用過cin輸入,則需要getchar 吸收上一次輸入時剩下的回車 isdigit int ...