按照如下规则更新版本号:
5.12.16 -> 5.13.0
5.12.0 -> 5.12.0
最后一位为0则中间的数字+1,否则保持不变
#include "stdafx.h"
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
char* Edition(char* str) {
if(str==NULL)
return NULL;
int n1=-1,n2=-1,n3=-1;
sscanf(str,"%d.%d.%d",&n1,&n2,&n3);
//cout<<str<<endl;cout<<n1<<n2<<n3<<endl;
if(n1==-1||n2==-1||n3==-1)
return NULL;
if(n3==0)
return str;
else
n2++;
//char update[10];
char *update = new char[50];//在堆上创建,这样函数退出后,内存才不会被释放
sprintf(update,"%d.%d.%d",n1,n2,n3);
//cout<<update<<endl;//cout<<n1<<n2<<n3<<endl;
return update;
}
int main()
{
char str[50]="5.13.1";
char *up;
cout<<sizeof(string)<<" "<<sizeof(str)<<" "<<str.size()<<endl;
up = Edition(str);
cout<<up<<endl;
system("pause");