在C++里用C函数是常用的。有时分不清哪个是C哪个是C++了。
C | C++ | |
内置整形 | int、long、short、 | unsigned long、long unsigned int、int、 unsigned short(16)、short、 unsigned long(32) 、 unsigned long long(64) |
内置浮点类型 | float、double | float、double、long double |
字符串 | char name[40]; | C风格字符串 char bird[11]="Mrs Bubbles" //‘\0’ |
字符串长度 | char msg[]="this is a message"; int m_len=strlen(msg);//1.长度 |
|
拼接字符串 | defined SIZE 80; char dest[SIZE]; | string str1,str2,str3; str1=str2+str3; str1+=str2; |
复制字符串 | char char1[20]; strcpy(char1,char2);//copy char2 to char1 | |
字符串比较 | defined ANSWER "Grant" { char * ret_val; if(ret_val) while(st[i]!='\n'&&st[i]!='\0') else while(getchar()!='\n') continue; } return ret_val; puts("NO,that is wrong,try again"); } } | |
枚举 | enum spectrum{red,orange}; enum bits{one=1,two=2,eight=4} bits myflag; myflag=bits(6);//不是枚举值,但这样写没问题。 enum bigstep{frist,second=100,third} | |
指针 | int higgens=5;
char animal[20]="bear"; const char * bird="wren"; ps=new char[strlen(animal)+1]; //获取副本 | |
数组 | ||
数组的替代品 | vector<int> vi; array<int,5> ai; | |
1.vector 增删改查
#include <string.h>
#include <vector>
#include <iostream>
using namespace std;//1.vector 增删改查
void vector_test(void)
{cout << "STLvector(void)";cout<<"******//1.创建与添加 push_back(0-5)******"<<endl;vector<int> vi; for (int i = 0; i < 5; i++){vi.push_back(i);cout << vi[i] << ",";}cout << "******//2.插入insert(vi.begin()+vi.size(),6)******" << endl;vi.insert(vi.begin()+vi.size(),6);cout << endl;cout << "******//3.删除 pop_back()******" << endl;for (int i = 0; i < vi.size(); i++){vi.pop_back();//3.删除}cout << "******删除 后 ******" << endl;vector<int>::iterator it;//声明一个迭代器,来访问vector容器,作用:遍历或者指向vector容器的元素 for (it = vi.begin(); it != vi.end(); it++){cout << *it << " ";}cout << endl;cout << "******//4 批量添加 string 5个******" << endl;vector<string> vstr(5, "ab");// 创建5个string "00"vstr.push_back("111");vstr.push_back("222");for (int i = 0; i < vstr.size(); i++){cout << vstr[i] << ",";}}
2.string 增删改查+格式化输出
#include <string>
#include <vector>void testStr()
{int i;string strUp = "THIS IS A STRING";char ch;vector <char> vc;cout << " strUp********************************" << endl;cout << strUp << endl;int len = strUp.size();cout << len << endl;for (i = 0; i < len; i++){ch = tolower(strUp[i]);vc.push_back(ch);}cout << " strLow********************************" << endl;//vector<char>::iterator it;for (i = 0; i < len; i++){cout << vc[i];}cout << endl;//iterator 访问vector<char>::iterator it;for (it = vc.begin(); it != vc.end(); it++){cout << *it;}}
#include <string>
#include <vector>string myFormat(const char* pszFmt, ...)
{std::string str;va_list args;va_start(args, pszFmt);{int nLength = _vscprintf(pszFmt, args);nLength += 1; //上面返回的长度是包含\0,这里加上std::vector<char> vectorChars(nLength);_vsnprintf(vectorChars.data(), nLength, pszFmt, args);str.assign(vectorChars.data());}va_end(args);return str;
}void mystringFormat()
{std::string str;int m_int = 10;int i = 10;str = format("i=%c", i);string.Format("{ 0:D2 }", 1223)
/* string.Format(”{ 0:D2 }”, 1223)// 结果为:1223,'// 3、用分号隔开的数字,并指定小数点后的位数string.Format(”{ 0:N }”, 14200) //结果为:14, 200.00 (默认为小数点后面两位)string.Format(”{ 0:N3 }”, 14200.2458) //结果为:14, 200.246 (自动四舍五入)// 4、格式化百分比string.Format(”{ 0:P }”, 0.24583) //结果为:24.58 % (默认保留百分的两位小数)string.Format(”{ 0:P1 }”, 0.24583) //结果为:24.6 % (自动四舍五入)// 5、零占位符和数字占位符string.Format(”{ 0:0000.00 }”, 12394.039)// 结果为:12394.04string.Format(”{ 0:0000.00 }”, 194.039) //结果为:0194.04string.Format(”{ 0:###.## }”, 12394.039) //结果为:12394.04string.Format(”{ 0:####.# }”, 194.039) //结果为:194string.Format(”{ 0:d }”, System.DateTime.Now) //结果为:2009 - 3 - 20 (月份位置不是03)string.Format(”{ 0:D }”, System.DateTime.Now) //结果为:2009年3月20日string.Format(”{ 0:f }”, System.DateTime.Now) //结果为:2009年3月20日 15:37string.Format(”{ 0:F }”, System.DateTime.Now) //结果为:2009年3月20日 15 : 37 : 52string.Format(”{ 0:g }”, System.DateTime.Now) //结果为:2009 - 3 - 20 15 : 38string.Format(”{ 0:G }”, System.DateTime.Now) //结果为:2009 - 3 - 20 15 : 39 : 27string.Format(”{ 0:m }”, System.DateTime.Now) //结果为:3月20日string.Format(”{ 0:t }”, System.DateTime.Now) //结果为:15 : 41string.Format(”{ 0:T }”, System.DateTime.Now) //结果为:15 : 41 : 50
}
int main()
{string str="abc";cout<<"size: "<<str.size()<<endl;cout<<"length: "<<str.length()<<endl;cout<<"sizeof(str): "<<sizeof(str)<<endl;string a="a";cout<<"sizeof(a): "<<sizeof(a)<<endl;
}#size: 3
#length: 3
#sizeof(str): 32
#sizeof(str): 32