【发布时间】:2010-09-22 02:17:42
【问题描述】:
如何在不使用库的情况下切断数字的前导数字以仅显示最后两位数字。例如:
1923 年至 23 岁
2001 至 01
1234 到 34
123 到 23
只有
#include <iomanip>
#include <iostream>
谢谢!
【问题讨论】:
如何在不使用库的情况下切断数字的前导数字以仅显示最后两位数字。例如:
1923 年至 23 岁
2001 至 01
1234 到 34
123 到 23
只有
#include <iomanip>
#include <iostream>
谢谢!
【问题讨论】:
如果您只是使用整数,为了简单起见,我建议您只使用 mod %100:
int num =2341;
cout << num%100;
将显示 41。
如果您需要前导零,请执行以下操作:
std::cout << std::setw(2) << std::setfill('0') << num%100 << std::endl;
【讨论】:
std::cout << std::setw(2) << std::setfill('0') << 3 << '\n';
如果您的数字是 int 形式(而不是字符串形式),您应该考虑使用 modulo operator。
如果数字是 char[] 形式,则有一个简单的解决方案,即对字符串进行索引,例如:
char *myString = "ABCDE";
int lengthOfMyString = 5;
cout << myString[lengthOfMyString - 3]
<< myString[lengthOfMyString - 5]
<< myString[lengthOfMyString - 4];
//outputs the word CAB
【讨论】:
cout << &myString[lengthOfString - 2],其中 & 运算符获取该字符的地址,导致运算符myString.substr(myString.size() - 2); 对于两者,您应该首先知道或检查字符串是否至少有 2 个字符。