标签:
/*记录一些C++的一些基本用法吧*/
①输入输出:
1 #include<iostream> 2 #include<string> 3 using namespace std; 4 5 int main() 6 { 7 string cww; 8 cin>>cww; //cin>>_-输入 9 cout<<cww<<endl; //cout<<_<<endl-输出 10 return 0; 11 }
然而,对于含有空格的字符串:
——开头的空格会被忽略输出后续字符串
——然而非开头处的空格会终止读取
string类型输入操作符有如下规则:
a.读取并忽略开头所有空白字符(“\n”,“\t”,“ ”,etc.).
b.读取字符直至再次遇见空白字符会终止读取.
那么要读取完整的含有空白字符的句子要怎么办呢?
还有getline呀:
1 #include<iostream> 2 #include<string> 3 using namespace std; 4 5 int main() 6 { 7 string cww; 8 getline(cin,cww); //getline(cin,str)读取整行字符串 9 cout<<cww<<endl; 10 return 0; 11 }
——这样整行都可以完整输出.
②string的操作
1 1 // string constructor 2 2 #include <iostream> 3 3 #include <string> 4 4 using namespace std; 5 5 6 6 int main () 7 7 { 8 8 string s0 ("Initial string"); 9 9 10 10 // constructors used in the same order as described above: 11 11 string s1; 12 12 string s2 (s0); //s2是s0的副本 13 13 string s3 (s0, 8, 3); //从第八个字符(由0开始计数)开始 14 14 string s4 ("A character sequence", 6); //输出到第六个字符截止(从0计数,不含第六个) 15 15 string s5 ("Another character sequence"); 16 16 string s6 (10, ‘x‘); //输出10个x 17 17 string s7a (10, 42); //ascii(42)即‘*’ 18 18 string s7b (s0.begin(), s0.begin()+7); //begin开始的字符起向后数7个输出 19 19 20 20 cout << "s1: " << s1 << "\ns2: " << s2 << "\ns3: " << s3; 21 21 cout << "\ns4: " << s4 << "\ns5: " << s5 << "\ns6: " << s6; 22 22 cout << "\ns7a: " << s7a << "\ns7b: " << s7b << endl; 23 23 return 0; 24 24 }
运行结果:
1 // string assigning 2 #include <iostream> 3 #include <string> 4 using namespace std; 5 6 int main () 7 { 8 string str1, str2, str3; 9 str1 = "Test string: "; 10 str2 = ‘x‘; 11 str3 = str1 + str2; //将两个str连接成一个 12 cout << str3 << endl; 13 return 0; 14 }
运行结果:
1 // string::operator[] 2 #include <iostream> 3 #include <string> 4 using namespace std; 5 6 int main () 7 { 8 string str ("Test string"); 9 int i; 10 for (i=0; i < str.length(); i++) //str.length()-字符串长度 11 { 12 cout << str[i]; 13 } 14 return 0; 15 }
运行结果:
1 #include <iostream> 2 #include <string> 3 using namespace std; 4 5 int main () 6 { 7 string str="i am cww"; 8 cout<<str.empty()<<"\n"; //str.empty()判断是否为空串,是-1,否-0 9 cout<<str.size()<<endl; //str.size()得字符串的长度,包括空格数 10 return 0; 11 }
运行结果:
还有诸多用法,参考这位博客君→http://www.cnblogs.com/ggjucheng/archive/2012/01/03/2310941.html
关于下标:
1 1 #include <iostream> 2 2 #include <string> 3 3 using namespace std; 4 4 5 5 int main () 6 6 { 7 7 string str="i am cww"; 8 8 for(string::size_type i=0;i!=str.size();i++) //下标类型为unsigned类型string::size_type,不是整型,可能会出现负数(?) 9 9 cout<<str[i]<<endl; 10 10 return 0; 11 11 }
就像c语言数组一样,不过这里下表定义必须是unsigned,不过用int定义其实也能成功编译,是为了预防不安全的情况吧.
标签:
原文地址:http://www.cnblogs.com/suzyc/p/4436471.html