原代码转自知乎:
著作权归作者所有。
商业转载请联系作者获得授权,非商业转载请注明出处。
作者:郑航
链接:http://www.zhihu.com/question/37904806/answer/74109099
来源:知乎
function getRating(rating) {
if(rating > 5 || rating < 0) throw new Error('数字不在范围内');
return '★★★★★☆☆☆☆☆'.substring(5 - rating, 10 - rating );}
改为C++版本:
#include <iostream>
using namespace std;
string getRating(int rating) {
string star = "★★★★★☆☆☆☆☆";
if (rating > 5 || rating < 0) throw "数字不在范围内";
return star.substr(10-rating*2, 10);
}
int main(){
int num = 0;
while (true)
{
cout << "请输入一个数字" << endl;
cin >> num;
string str = getRating(num);
cout << "您的评分为:";
for each (char var in str)
{
cout << var;
}
cout << endl;
}
}
这里有两个问题:1、C++没有substring函数(substring(起始位置,终止位置)),只有substr函数(substr(起始位置,长度));2、C++中的符号占用两个字符,而原javascript代码符号只占用1个字符。
解决这两个问题就行了。
以上。