C++取前n个字符和整数的后n位数

    科技2023-09-15  96

    /* (1) 分离字符串的前n位,即获取字符串的前n个字符 (2) 获取整数的前n个数 */ #include <iostream> #include <string> #include <vector> using namespace std; string getNchar(string str, int n); int getNNumber(int number, int n); void main() { cout << "输如一个字符串" << endl; string chars; // cin面向单词,getline面向句子,还有gets--- getline(cin, chars); cout << "请输入获取前几个字符" << endl; int n = 0; cin >> n; // 获取前n个字符; string nChars; nChars = getNchar(chars, n); cout << nChars << endl; // 获取前n个整数 cout << "请输入一个整数( 0~(2^32-1) )---因为测试用的是int型--当然,可以对cin进行检测来判断是否输入正确" << endl; int number = 0; cin >> number; cout << "请输入获取前几个位数" << endl; int m = 0; cin >> m; int nNnumber = getNNumber(number, m); cout << "前" << m << "位数是: " << nNnumber << endl; } int getNNumber(int number, int n) { // 获取number的全部位数 // 保存number; int InitNumber = number; int count=0; do { count++; number /= 10; } while (number!=0); cout << "number 的 位数是: " << count << endl; if (n < 0) { n = 0; cout << "ERROR: n < 0, 请输入大于0的n" << endl; } if (n > count) { n = count; } vector<int>tempNNumber; for (size_t i = 0; i < n; i++) { int tempN = InitNumber % 10; tempNNumber.push_back(tempN); InitNumber /= 10; } for (size_t i = 0; i < tempNNumber.size(); i++) { cout << tempNNumber[i] << endl; } int Ndata = 0; for (size_t i = 0; i < n; i++) { Ndata = Ndata + (tempNNumber[i] * pow(10, i)); } return Ndata; // 123 2 -- } string getNchar(string str,int n) { string nChars; if (n < 0) { n = 0; cout << "ERROR: n < 0, 请输入大于0的n" << endl; } if (n > str.size()) { n = str.size(); } for (size_t i = 0; i < n; i++) { nChars.push_back(str[i]); } return nChars; }
    Processed: 0.012, SQL: 8