QR11. 身份证分组
描述
18位身份证的编码规则是:输入描述
输入数据有多行,每一行是一个输入过程中的身份证号输出描述
分组后的字符串示例1
输入:
5021 502104 198803 5021041988033084 502104198803308324
输出:
5021 502104 198803 502104 19880330 84 502104 19880330 8324
C++ 解法, 执行用时: 1ms, 内存消耗: 372KB, 提交时间: 2017-11-14
#include<stdio.h> #include<stdlib.h> #include<string.h> #include<unistd.h> #include<math.h> #include<sys/types.h> void disposeString(char *s); int main (void) { char buf[32] = {0}; fgets(buf, sizeof(buf), stdin); disposeString(buf); fputs(buf, stdout); return 0; } void disposeString(char *s) { char *temp = s; int len = strlen(s) - 1; char buf[32] = {0}; int i = 0; while(*s) { if(i == 6|| i == 15) { buf[i++] = ' '; } if(*s == ' ') { s++; continue; } buf[i++] = *s++; } i = 0; while(buf[i]) { *temp = buf[i]; temp++; i++; } return; }
C++ 解法, 执行用时: 1ms, 内存消耗: 372KB, 提交时间: 2017-10-27
#include<iostream> #include<stack> #include<cstring> #include<vector> #include<algorithm> #include<map> #include<string> #include<cmath> #include<string> #include<set> using namespace std; int main() { string s; while (getline(cin,s)) { int c = 0; for (int i = 0; i < s.size(); i++) { if (s[i] == ' ') continue; if (c == 6 || c == 14 || c == 18) { cout << " "; } cout << s[i]; c++; } cout << endl; } //system("pause"); }
C++ 解法, 执行用时: 1ms, 内存消耗: 372KB, 提交时间: 2017-10-26
#include <iostream> #include <vector> #include <string> using namespace std; int main() { string str1; vector <char>str2; getline(cin,str1); int num=str1.length(); for(int i=0;i<num;i++) {char temp=str1[i]; if(str1[i]!=' ') str2.push_back(temp); } int num2=str2.size(); for(int j=0;j<num2;j++) {if(num2<6) cout<<str2[j]; else {cout<<str2[j]; if(j==5||j==13) cout<<" "; } } return 0; }
C++ 解法, 执行用时: 1ms, 内存消耗: 372KB, 提交时间: 2017-10-22
#include <string> #include <algorithm> #include <vector> #include <iostream> #include <stack> #include<cstdio> using namespace std; int main() { string num; vector<char> num2; getline(cin, num); int n = num.length(); for (int i = 0; i < n; i++) { char tmp = num[i]; if (num[i] != ' ') num2.push_back(tmp); } int n2 = num2.size(); for (int i = 0; i < n2; i++) { cout << num2[i]; if (i == 5 || i== 13) cout << " "; } return 0; }
C++ 解法, 执行用时: 1ms, 内存消耗: 372KB, 提交时间: 2017-10-12
/* 编译 g++ -o test test.cpp */ #include <bits/stdc++.h> using namespace std; string s; int main() { while(cin >> s) { if (s.length() <= 6) { cout << s << endl; } else if (s.length() <= 14) { cout << s.substr(0, 6) << ' ' << s.substr(6) << endl; } else { cout << s.substr(0, 6) << ' '; cout << s.substr(6, 8) << ' '; cout << s.substr(14) << endl; } } return 0; }