連續輸入字符串,請按長度爲8拆分每一個字符串後輸出到新的字符串數組;
ios
長度不是8整數倍的字符串請在後面補數字0,空字符串不處理。數組
輸入描述:
函數
連續輸入字符串(輸入2次,每一個字符串長度小於100)spa
輸出描述:
指針
輸出到長度爲8的新字符串數組code
輸入例子:
對象
abc 123456789
輸出例子:ci
abc00000 12345678 90000000
基本思路:字符串
#include <iostream> #include <string> using namespace std; int main() { string s; while(cin>>s){ int count = 0; int i=0; while(i<s.length()){ if(count<8){ //一開始執行這一句,由於咱們的初值設置爲count=0 cout<<s[i]; i++; count++; //直到輸出8個數字爲止 } else { cout<<endl; count = 0; //若是滿8位則換行,而後從新置count爲0,再執行上面的輸出 } } while(count<8){ cout<<0; count++; } //最後一排的輸出控制,若是不滿8位補零輸出 cout<<endl; } }
#include<iostream> #include<string> using namespace std; void print(const char *p); char str[9]={0}; int main(){ string str1,str2; const char *p1,*p2; getline(cin,str1); getline(cin,str2); p1 = str1.c_str(); p2 = str2.c_str(); /* const char *c_str(); c_str()函數返回一個指向正規C字符串的指針, 內容與本string串相同. 這是爲了與c語言兼容,在c語言中沒有string類型,故必須經過string類對象的成員函數c_str()把string 對象轉換成c中的字符串樣式。 注意:必定要使用strcpy()函數 等來操做方法c_str()返回的指針 */ print(p1); print(p2); return 0; } void print(const char *p){ while(*p !='\0'){ //循環到字符串結束 int k=0; while((k++) < 8){ //控制輸出8位 str[k] = *p; if(*p == '\0'){ str[k] = '0'; continue; } p++; } str[k] = '\0'; for(int i=0;i<8;i++) cout << str[i]; cout<<endl; } }
基本思路:調用庫函數substr()截取字符串。get
#include <stdio.h> #include <iostream> #include <string> using namespace std; int main() { string s1; string s2 = "0000000"; unsigned int i = 0; while ( getline(cin, s1) ) { for (i = 0; i+8 < s1.length(); i=i+8) { cout << s1.substr(i, 8) << endl; } if (s1.length() - i > 0) { cout << s1.substr(i, s1.length() - i) + s2.substr(0, 8-(s1.length() - i))<< endl; } } return 0; } //getline遇到換行符,結束輸入,進入while循環,利用string的substr函數取出字符串。
#include<iostream> #include<string> using namespace std; void output(string str); int main(){ string str1; string str2; cin>>str1>>str2; output(str1); output(str2); return 0; } void output(string str){ int cir=str.size()/8; int last=str.size()%8; string fil="00000000"; for(int i=0;i<cir;i=i+1) cout<<str.substr(i*8,8)<<endl; if(last>0) cout<<str.substr(8*cir)<<fil.substr(last)<<endl; }