1ï¼å£°æä¸ä¸ªC++å符串
声æä¸ä¸ªå符串åéå¾ç®åï¼
string Str;
è¿æ ·æ们就声æäºä¸ä¸ªå符串åéï¼ä½æ¢ç¶æ¯ä¸ä¸ªç±»ï¼å°±ææé å½æ°åææå½æ°ãä¸é¢ç声æ没æä¼ å
¥åæ°ï¼æ以就ç´æ¥ä½¿ç¨äºstringçé»è®¤çæé å½æ°ï¼è¿ä¸ªå½æ°æä½çå°±æ¯æStråå§å为ä¸ä¸ªç©ºå符串ãStringç±»çæé å½æ°åææå½æ°å¦ä¸ï¼
a) string s; //çæä¸ä¸ªç©ºå符串s
b) string s(str) //æ·è´æé å½æ° çæstrçå¤å¶å
c) string s(str,stridx) //å°å符串strå
"å§äºä½ç½®stridx"çé¨åå½ä½å符串çåå¼
d) string s(str,stridx,strlen) //å°å符串strå
"å§äºstridxä¸é¿åº¦é¡¶å¤strlen"çé¨åä½ä¸ºå符串çåå¼
e) string s(cstr) //å°Cå符串ä½ä¸ºsçåå¼
f) string s(chars,chars_len) //å°Cå符串åchars_len个å符ä½ä¸ºå符串sçåå¼ã
g) string s(num,c) //çæä¸ä¸ªå符串ï¼å
å«num个cå符
h) string s(beg,end) //以åºé´beg;end(ä¸å
å«end)å
çå符ä½ä¸ºå符串sçåå¼
i) s.~string() //éæ¯ææå符ï¼éæ¾å
å
é½å¾ç®åï¼æå°±ä¸è§£éäºã
2ï¼å符串æä½å½æ°
è¿éæ¯C++å符串çéç¹ï¼æå
æåç§æä½å½æ°ç½ååºæ¥ï¼ä¸å欢æææå½æ°é½çå®ç人å¯ä»¥å¨è¿éæ¾èªå·±å欢çå½æ°ï¼åå°åé¢çä»ç详ç»è§£éã
a) =,assign() //èµä»¥æ°å¼
b) swap() //交æ¢ä¸¤ä¸ªå符串çå
容
c) +=,append(),push_back() //å¨å°¾é¨æ·»å å符
d) insert() //æå
¥å符
e) erase() //å é¤å符
f) clear() //å é¤å
¨é¨å符
g) replace() //æ¿æ¢å符
h) + //串èå符串
i) ==,!=,<,<=,>,>=,compare() //æ¯è¾å符串
j) size(),length() //è¿åå符æ°é
k) max_size() //è¿åå符çå¯è½æ大个æ°
l) empty() //å¤æå符串æ¯å¦ä¸ºç©º
m) capacity() //è¿åéæ°åé
ä¹åçå符容é
n) reserve() //ä¿çä¸å®éå
å以容纳ä¸å®æ°éçå符
o) [ ], at() //åååä¸å符
p) >>,getline() //ä»stream读åæå¼
q) << //å°è°å¼åå
¥stream
r) copy() //å°æå¼èµå¼ä¸ºä¸ä¸ªC_string
s) c_str() //å°å
容以C_stringè¿å
t) data() //å°å
容以å符æ°ç»å½¢å¼è¿å
u) substr() //è¿åæ个åå符串
v)æ¥æ¾å½æ°
w)begin() end() //æä¾ç±»ä¼¼STLçè¿ä»£å¨æ¯æ
x) rbegin() rend() //éåè¿ä»£å¨
y) get_allocator() //è¿åé
ç½®å¨
ä¸é¢è¯¦ç»ä»ç»ï¼
2ï¼1 C++å符串åCå符串ç转æ¢
C
++æä¾çç±C++å符串å¾å°å¯¹åºçC_stringçæ¹æ³æ¯ä½¿ç¨data()ãc_str()åcopy()ï¼å
¶ä¸ï¼data()以å符æ°ç»çå½¢å¼è¿åå符串å
容ï¼ä½å¹¶ä¸æ·»å â\0âãc_str()è¿åä¸ä¸ªä»¥â\0âç»å°¾çå符æ°ç»ï¼ècopy()åæå符串çå
容å¤å¶æåå
¥æ¢æçc_stringæ
å符æ°ç»å
ãC++å符串并ä¸ä»¥â\0âç»å°¾ãæç建议æ¯å¨ç¨åºä¸è½ä½¿ç¨C++å符串就使ç¨ï¼é¤éä¸ä¸å¾å·²ä¸éç¨c_stringãç±äºåªæ¯ç®åä»ç»ï¼è¯¦ç»ä»ç»æ è¿ï¼è°æ³è¿ä¸æ¥äºè§£ä½¿ç¨ä¸ç注æäºé¡¹å¯ä»¥ç»æçè¨(å°æçæ¶ä»¶ç®±)ãæ详ç»è§£éã
2ï¼2 大å°å容éå½æ°
ä¸ä¸ªC++å符 串åå¨ä¸ç§å¤§å°ï¼a)ç°æçå符æ°ï¼å½æ°æ¯size()ålength()ï¼ä»ä»¬çæãEmpty()ç¨æ¥æ£æ¥å符串æ¯å¦ä¸ºç©ºãb)max_size()
è¿ä¸ªå¤§å°æ¯æå½åC++å符串æå¤è½å
å«çå符æ°ï¼å¾å¯è½åæºå¨æ¬èº«çéå¶æè
å符串æå¨ä½ç½®è¿ç»å
åç大å°æå
³ç³»ãæ们ä¸è¬æ
åµä¸ä¸ç¨å
³å¿ä»ï¼åºè¯¥å¤§å°è¶³å¤æ们ç¨çãä½æ¯ä¸å¤ç¨çè¯ï¼ä¼æåºlength_errorå¼å¸¸c)capacity()éæ°åé
å
åä¹å
stringæè½å
å«çæ大å符æ°ãè¿éå¦ä¸ä¸ªéè¦æåºçæ¯reserve()å½æ°ï¼è¿ä¸ªå½æ°ä¸ºstringéæ°åé
å
åãéæ°åé
ç大å°ç±å
¶åæ°å³å®ï¼
é»è®¤åæ°ä¸º0ï¼è¿æ¶åä¼å¯¹stringè¿è¡é强å¶æ§ç¼©åã
è¿æå¿
è¦åéå¤ä¸ä¸C++å符串åCå符串转æ¢çé®
é¢ï¼è®¸å¤äººä¼éå°è¿æ ·çé®é¢ï¼èªå·±åçç¨åºè¦è°ç¨å«äººçå½æ°ãç±»ä»ä¹çï¼æ¯å¦æ°æ®åºè¿æ¥å½æ°Connect(char*,char*)ï¼ï¼ä½å«äººçå½æ°å
æ°ç¨çæ¯char*å½¢å¼çï¼èæ们ç¥éï¼c_str()ãdata()è¿åçå符æ°ç»ç±è¯¥å符串æ¥æï¼æ以æ¯ä¸ç§const
char*,è¦æ³ä½ä¸ºä¸é¢æåçå½æ°çåæ°ï¼è¿å¿
é¡»æ·è´å°ä¸ä¸ªchar*,èæ们çååæ¯è½ä¸ä½¿ç¨Cå符串就ä¸ä½¿ç¨ãé£ä¹ï¼è¿æ¶åæ们çå¤çæ¹å¼æ¯ï¼å¦æ
æ¤å½æ°å¯¹åæ°(ä¹å°±æ¯char*)çå
容ä¸ä¿®æ¹çè¯ï¼æ们å¯ä»¥è¿æ ·Connect((char*)UserID.c_str(),
(char*)PassWD.c_str()),ä½æ¯è¿æ¶åæ¯åå¨å±é©çï¼å 为è¿æ ·è½¬æ¢åçå符串å
¶å®æ¯å¯ä»¥ä¿®æ¹çï¼æå
´è¶£å°å¯ä»¥èªå·±è¯ä¸è¯ï¼ï¼æ以æ强è°é¤éå½æ°è°ç¨çæ¶åä¸å¯¹åæ°è¿è¡ä¿®æ¹ï¼å¦åå¿
é¡»æ·è´å°ä¸ä¸ªchar*ä¸å»ãå½ç¶ï¼æ´ç¨³å¦¥çåæ³æ¯æ 论ä»ä¹æ
åµé½æ·è´å°ä¸ä¸ªchar*ä¸å»ãåæ¶æ们ä¹ç¥
祷ç°å¨ä»ç¶ä½¿ç¨Cå符串è¿è¡ç¼ç¨çé«æ们ï¼è¯´ä»ä»¬æ¯é«æä¸ç¹å¿ä¹ä¸ä¸ºè¿ï¼ä¹è®¸å¨æ们è¿ç©¿å¼è£è£¤çæ¶åä»ä»¬å°±å¼å§ç¼ç¨äºï¼ååâ¦ï¼åçå½æ°é½æ¯è¾è§èï¼é£æ ·
æ们就ä¸å¿
è¿è¡å¼ºå¶è½¬æ¢äºã
2ï¼3å
ç´ åå
æ们å¯ä»¥ä½¿ç¨ä¸æ æä½ç¬¦[]åå½æ°at()对å
ç´ å
å«çå符è¿è¡è®¿é®ãä½æ¯åºè¯¥æ³¨æçæ¯æä½ç¬¦[]并ä¸æ£æ¥ç´¢å¼æ¯å¦ææï¼ææç´¢å¼0~str.length()ï¼ï¼å¦æç´¢å¼å¤±æï¼ä¼å¼èµ·æªå®ä¹çè¡ä¸ºãèat()ä¼æ£æ¥ï¼å¦æ使ç¨
at()çæ¶åç´¢å¼æ æï¼ä¼æåºout_of_rangeå¼å¸¸ã
æä¸ä¸ªä¾å¤ä¸å¾ä¸è¯´ï¼const string
a;çæä½ç¬¦[]对索å¼å¼æ¯a.length()ä»ç¶ææï¼å
¶è¿åå¼æ¯â\0âãå
¶ä»çåç§æ
åµï¼a.length()ç´¢å¼é½æ¯æ æçã举ä¾å¦ä¸ï¼
const string Cstr("const string");
string Str("string");
Str[3]; //ok
Str.at(3); //ok
Str[100]; //æªå®ä¹çè¡ä¸º
Str.at(100); //throw out_of_range
Str[Str.length()] //æªå®ä¹è¡ä¸º
Cstr[Cstr.length()] //è¿å â\0â
Str.at(Str.length());//throw out_of_range
Cstr.at(Cstr.length()) ////throw out_of_range
æä¸èµæ类似äºä¸é¢çå¼ç¨ææéèµå¼ï¼
char& r=s[2];
char* p= &s[3];
å 为ä¸æ¦åçéæ°åé
ï¼r,pç«å³å¤±æãé¿å
çæ¹æ³å°±æ¯ä¸ä½¿ç¨ã
2ï¼4æ¯è¾å½æ°
C ++å符串æ¯æ常è§çæ¯è¾æä½ç¬¦ï¼>,>=,<,<=,==,!=ï¼ï¼çè³æ¯æstringä¸C-stringçæ¯è¾(å¦
str<"hello")ãå¨ä½¿ç¨>,>=,<,<=è¿äºæä½ç¬¦çæ¶åæ¯æ ¹æ®"å½åå符ç¹æ§"å°å符æåå
¸é¡ºåºè¿è¡éä¸å¾
æ¯è¾ãåå
¸æåºé åçå符å°ï¼æ¯è¾ç顺åºæ¯ä»åååæ¯è¾ï¼éå°ä¸ç¸ççå符就æè¿ä¸ªä½ç½®ä¸ç两个å符çæ¯è¾ç»æç¡®å®ä¸¤ä¸ªå符串ç大å°ãåæ¶ï¼string
("aaaa")
å¦ä¸ä¸ªåè½å¼ºå¤§çæ¯è¾å½æ°æ¯æåå½æ°compare()ãä»æ¯æå¤åæ°å¤çï¼æ¯æç¨ç´¢å¼å¼åé¿åº¦å®ä½å串æ¥è¿è¡æ¯è¾ãä»è¿åä¸ä¸ªæ´æ°æ¥è¡¨ç¤ºæ¯è¾ç»æï¼è¿åå¼æä¹å¦ä¸ï¼0-ç¸ç
ã0-å¤§äº <0-å°äºã举ä¾å¦ä¸ï¼
string s("abcd");
s.compare("abcd"); //è¿å0
s.compare("dcba"); //è¿åä¸ä¸ªå°äº0çå¼
s.compare("ab"); //è¿å大äº0çå¼
s.compare(s); //ç¸ç
s.compare(0,2,s,2,2); //ç¨"ab"å"cd"è¿è¡æ¯è¾ å°äºé¶
s.compare(1,2,"bcx",2); //ç¨"bc"å"bc"æ¯è¾ã
æä¹æ ·ï¼åè½å¤å
¨çå§ï¼ä»ä¹ï¼è¿ä¸è½æ»¡è¶³ä½ çèå£ï¼å¥½å§ï¼é£ççï¼åé¢ææ´ä¸ªæ§åçæ¯è¾ç®æ³ãå
ç»ä¸ªæ示ï¼ä½¿ç¨çæ¯STLçæ¯è¾ç®æ³ãä»ä¹ï¼å¯¹STLä¸çªä¸éï¼é ï¼ä½ éä¿®å§ï¼
2ï¼5 æ´æ¹å
容
è¿å¨å符串çæä½ä¸å äºå¾å¤§ä¸é¨åã
é¦å
讲èµå¼ï¼ç¬¬ä¸ä¸ªèµå¼æ¹æ³å½ç¶æ¯ä½¿ç¨æä½ç¬¦=ï¼æ°å¼å¯ä»¥æ¯string(å¦ï¼s=ns)
ãc_string(å¦ï¼s="gaint")çè³åä¸å符ï¼å¦ï¼s=âjâï¼ãè¿å¯ä»¥ä½¿ç¨æåå½æ°assign()ï¼è¿ä¸ªæåå½æ°å¯ä»¥ä½¿ä½ æ´çµæ´»ç对å符串èµå¼ãè¿æ¯ä¸¾ä¾è¯´æå§ï¼
s.assign(str); //ä¸è¯´
s.assign(str,1,3);//å¦æstræ¯"iamangel" å°±æ¯æ"ama"èµç»å符串
s.assign(str,2,string::npos);//æå符串strä»ç´¢å¼å¼2å¼å§å°ç»å°¾èµç»s
s.assign("gaint"); //ä¸è¯´
s.assign("nico",5);//æânâ âIâ âcâ âoâ â\0âèµç»å符串
s.assign(5,âxâ);//æäºä¸ªxèµç»å符串
æå符串æ¸
空çæ¹æ³æä¸ä¸ªï¼s="";s.clear();s.erase();(æè¶æ¥è¶è§å¾ä¸¾ä¾æ¯è¯´è¯è®©å«äººå®¹ææï¼)ã
stringæä¾äºå¾å¤å½æ°ç¨äºæå
¥ï¼insertï¼ãå é¤ï¼eraseï¼ãæ¿æ¢ï¼replaceï¼ãå¢å å符ã
å
说å¢å å符ï¼è¿é说çå¢å æ¯å¨å°¾å·´ä¸ï¼ï¼å½æ°æ +=ãappend()ãpush_back()ã举ä¾å¦ä¸ï¼
s+=str;//å 个å符串
s+="my name is jiayp";//å 个Cå符串
s+=âaâ;//å 个å符
s.append(str);
s.append(str,1,3);//ä¸è§£éäº ååé¢çå½æ°åæ°assignç解é
s.append(str,2,string::npos)//ä¸è§£éäº
s.append("my name is jiayp");
s.append("nico",5);
s.append(5,âxâ);
s.push_back(âaâ);//è¿ä¸ªå½æ°åªè½å¢å å个å符 对STLçæçç解起æ¥å¾ç®å
ä¹è®¸ä½ éè¦å¨stringä¸é´çæ个ä½ç½®æå
¥å符串ï¼è¿æ¶åä½ å¯ä»¥ç¨insert()å½æ°ï¼è¿ä¸ªå½æ°éè¦ä½ æå®ä¸ä¸ªå®æä½ç½®çç´¢å¼ï¼è¢«æå
¥çå符串å°æ¾å¨è¿ä¸ªç´¢å¼çåé¢ã
s.insert(0,"my name");
s.insert(1,str);
è¿ ç§å½¢å¼çinsert()å½æ°ä¸æ¯æä¼ å
¥å个å符ï¼è¿æ¶çå个å符å¿
é¡»åæå符串形å¼(让人æ¶å¿)ãæ¢ç¶ä½ è§å¾æ¶å¿ï¼é£å°±ä¸å¾ä¸ç»§ç»è¯»ä¸é¢ä¸æ®µè¯ï¼ä¸ºäºæ
å
¥å个å符ï¼insert()å½æ°æä¾äºä¸¤ä¸ªå¯¹æå
¥å个å符æä½çéè½½å½æ°ï¼insert(size_type index,size_type num,chart
c)åinsert(iterator pos,size_type num,chart
c)ãå
¶ä¸size_typeæ¯æ 符å·æ´æ°ï¼iteratoræ¯char*,æ以ï¼ä½ è¿ä¹è°ç¨insertå½æ°æ¯ä¸è¡çï¼insert(0,1,
âjâ);è¿æ¶å第ä¸ä¸ªåæ°å°è½¬æ¢æåªä¸ä¸ªå¢ï¼æä»¥ä½ å¿
é¡»è¿ä¹åï¼insert((string::size_type)0,1,âjâ)ï¼ç¬¬äºç§å½¢å¼æ
åºäºä½¿ç¨è¿ä»£å¨å®æå符çå½¢å¼ï¼å¨åé¢ä¼æåã顺便æä¸ä¸ï¼stringæå¾å¤æä½æ¯ä½¿ç¨STLçè¿ä»£å¨çï¼ä»ä¹å°½éåå¾åSTLé è¿ã
å é¤å½æ°erase()çå½¢å¼ä¹æ好å ç§ï¼çç¦ï¼ï¼ï¼æ¿æ¢å½æ°replace()ä¹æ好å 个ã举ä¾å§ï¼
string s="il8n";
s.replace(1,2,"nternationalizatio");//ä»ç´¢å¼1å¼å§ç2个æ¿æ¢æåé¢çC_string
s.erase(13);//ä»ç´¢å¼13å¼å§å¾åå
¨å é¤
s.erase(7,5);//ä»ç´¢å¼7å¼å§å¾åå 5个
2ï¼6æåå串åå符串è¿æ¥
é¢åå串çå½æ°æ¯ï¼substr(),å½¢å¼å¦ä¸ï¼
s.substr();//è¿åsçå
¨é¨å
容
s.substr(11);//ä»ç´¢å¼11å¾åçå串
s.substr(5,6);//ä»ç´¢å¼5å¼å§6个å符
æ两个å符串ç»åèµ·æ¥çå½æ°æ¯+ãï¼è°ä¸æç½è¯·è´çµ120ï¼
2ï¼7è¾å
¥è¾åºæä½
1ï¼>> ä»è¾å
¥æµè¯»åä¸ä¸ªstringã
2ï¼<< æä¸ä¸ªstringåå
¥è¾åºæµã
å¦ä¸ä¸ªå½æ°å°±æ¯getline(),ä»ä»è¾å
¥æµè¯»åä¸è¡å
容ï¼ç´å°éå°åè¡ç¬¦æå°äºæ件尾ã
2ï¼8æç´¢ä¸æ¥æ¾
æ¥æ¾å½æ°å¾å¤ï¼åè½ä¹å¾å¼ºå¤§ï¼å
æ¬äºï¼
find()
rfind()
find_first_of()
find_last_of()
find_first_not_of()
find_last_not_of()
è¿äºå½æ°è¿å符åæç´¢æ¡ä»¶çå符åºé´å
ç第ä¸ä¸ªå符çç´¢å¼ï¼æ²¡æ¾å°ç®æ å°±è¿ånposãææçå½æ°çåæ°è¯´æå¦ä¸ï¼
第ä¸ä¸ªåæ°æ¯è¢«æ寻ç对象ã第äºä¸ªåæ°ï¼å¯æå¯æ ï¼æåºstringå
çæ寻起ç¹ç´¢å¼ï¼ç¬¬ä¸ä¸ªåæ°ï¼å¯æå¯æ ï¼æåºæ寻çå符个æ°ãæ¯è¾ç®åï¼ä¸å¤è¯´ä¸ç解çå¯ä»¥åææåºï¼æåä»ç»ç解çãå½ç¶ï¼æ´å 强大çSTLæ寻å¨åé¢ä¼ææåã
æåå说说nposçå«ä¹ï¼string::nposçç±»åæ¯string::size_type,æ以ï¼ä¸æ¦éè¦æä¸ä¸ªç´¢å¼ä¸nposç¸æ¯ï¼è¿ä¸ªç´¢å¼å¼å¿
é¡»æ¯string::size)typeç±»åçï¼æ´å¤çæ
åµä¸ï¼æ们å¯ä»¥ç´æ¥æå½æ°ånposè¿è¡æ¯è¾ï¼å¦ï¼if(s.find("jia")== string::npos)ï¼ã
温馨提示:内容为网友见解,仅供参考