阿里面试算法题--版本号更新
2016-05-20 16:55
288 查看
按照如下规则更新版本号:
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");
return 0;
}
C和C++下对字符串进行格式转换的方法:
//int转string
int n = 0;
std::stringstream ss;
std::string str;
ss<<n;
ss>>str;
//string转int
std::string str = "123";
int n = atoi(str.c_str());
<pre name="code" class="cpp">//sscanf按格式读出相应的数据类型
char str[] = "15.455";
int i;
float fp;
sscanf( str, "%d", &i ); // 将字符串转换成整数 i = 15
sscanf( str, "%f", &fp ); // 将字符串转换成浮点数 fp = 15.455000
//打印
printf( "Integer: = %d ", i+1 );
printf( "Real: = %f ", fp+1 );
return 0;//sprintf按格式读入字符串 int H, M, S; string time_str; H=seconds/3600; M=(seconds%3600)/60; S=(seconds%3600)%60; char ctime[10]; sprintf(ctime, "%d:%d:%d", H, M, S); // 将整数转换成字符串 time_str=ctime; // 结果
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");
return 0;
}
C和C++下对字符串进行格式转换的方法:
//int转string
int n = 0;
std::stringstream ss;
std::string str;
ss<<n;
ss>>str;
//string转int
std::string str = "123";
int n = atoi(str.c_str());
<pre name="code" class="cpp">//sscanf按格式读出相应的数据类型
char str[] = "15.455";
int i;
float fp;
sscanf( str, "%d", &i ); // 将字符串转换成整数 i = 15
sscanf( str, "%f", &fp ); // 将字符串转换成浮点数 fp = 15.455000
//打印
printf( "Integer: = %d ", i+1 );
printf( "Real: = %f ", fp+1 );
return 0;//sprintf按格式读入字符串 int H, M, S; string time_str; H=seconds/3600; M=(seconds%3600)/60; S=(seconds%3600)%60; char ctime[10]; sprintf(ctime, "%d:%d:%d", H, M, S); // 将整数转换成字符串 time_str=ctime; // 结果
相关文章推荐
- 只有程序员看的懂的面试圣经|如何拿下编程面试
- 下一次技术面试时要问的 3 个重要问题
- PHP程序员面试 切忌急功近利(更需要注重以后的发展)
- C#常见算法面试题小结
- php 面试碰到过的问题 在此做下记录
- asp.net 面试+笔试题目第1/2页
- asp.net 面试 笔试题目[附答案]第1/3页
- Python爬虫工程师面试问题总结
- 谈谈最近深圳找工作经历
- 面试:(设计,架构)
- 面试总结(php)
- PHP中级面试经历
- 戴维营教育2015年iOS暑期班笔试面试基础考核题
- 一次有意思的面试
- 程序员编程面试取胜的8个技巧
- PHP相关面试中最经常涉及的12个问题
- 产品经理到底该如何自我介绍?
- 产品经理面试过程中如何回答比较宽泛的问题?
- 阿里资深HR教你一分钟叩开阿里巴巴大门
- 用托福满分作文思路,妥妥搞定产品经理面试