a******8 发帖数: 90 | 1 在面试中经常遇到把int转成str,很简单的问题但是又不想浪费多少时间。大家在面试
,做leetcode或者实际应用时一般怎么做。我想到一些use case:
面试时:
直接自己写一itoa(),花点时间
直接调itoa(),不过c++ standard里没有,而且牵扯string, char*之间转换
调用to_string,不过这是c++11里才有的,老系统不一定有,leetcode oj就没有,我的
vs2010里,这个方法重载了很多类型,还会出现一些调用问题。
还有个比较万能的,像这样,
std::stringstream ss; int x = 23;
ss << x;
std::string str = ss.str();//不过也浪费些白板空间,而且莫名多出来个类型还要
去记忆。
leetcode oj好像不支持 itoa(), to_string,问问大家一般怎么用的。 | w****a 发帖数: 710 | 2 我自己在项目里面一般不用std::string
自己会实现String类,直接带String::fromInt, String::toInt之类的方法。
面试用itoa吧,itoa不是很老的crt函数嘛。而且std::string转char*很方便啊.c_str(
)就行了。 | d**********x 发帖数: 4083 | 3 不要用stringstream,很少有人用的东西,效率也有问题。
在vs2008里当年还有个臭名昭著的memory leak问题。
int2str直接用snprintf即可。因为int输出的位数很确定,所以不会有buf长度问题。
snprintf(buf, "%d", x);
【在 a******8 的大作中提到】 : 在面试中经常遇到把int转成str,很简单的问题但是又不想浪费多少时间。大家在面试 : ,做leetcode或者实际应用时一般怎么做。我想到一些use case: : 面试时: : 直接自己写一itoa(),花点时间 : 直接调itoa(),不过c++ standard里没有,而且牵扯string, char*之间转换 : 调用to_string,不过这是c++11里才有的,老系统不一定有,leetcode oj就没有,我的 : vs2010里,这个方法重载了很多类型,还会出现一些调用问题。 : 还有个比较万能的,像这样, : std::stringstream ss; int x = 23; : ss << x;
| d**********x 发帖数: 4083 | 4 itoa is not standard.
str(
【在 w****a 的大作中提到】 : 我自己在项目里面一般不用std::string : 自己会实现String类,直接带String::fromInt, String::toInt之类的方法。 : 面试用itoa吧,itoa不是很老的crt函数嘛。而且std::string转char*很方便啊.c_str( : )就行了。
| a******8 发帖数: 90 | 5 谢大牛,
char*转std::string直接初始化就行了吧,
string str(...);
str(
【在 w****a 的大作中提到】 : 我自己在项目里面一般不用std::string : 自己会实现String类,直接带String::fromInt, String::toInt之类的方法。 : 面试用itoa吧,itoa不是很老的crt函数嘛。而且std::string转char*很方便啊.c_str( : )就行了。
| l*****a 发帖数: 14598 | 6 所有说C++对有些东西的处理很麻烦,面试时用java来避免这些麻烦比较好
【在 a******8 的大作中提到】 : 在面试中经常遇到把int转成str,很简单的问题但是又不想浪费多少时间。大家在面试 : ,做leetcode或者实际应用时一般怎么做。我想到一些use case: : 面试时: : 直接自己写一itoa(),花点时间 : 直接调itoa(),不过c++ standard里没有,而且牵扯string, char*之间转换 : 调用to_string,不过这是c++11里才有的,老系统不一定有,leetcode oj就没有,我的 : vs2010里,这个方法重载了很多类型,还会出现一些调用问题。 : 还有个比较万能的,像这样, : std::stringstream ss; int x = 23; : ss << x;
| w****a 发帖数: 710 | |
|