字串就是 儲存一長串的字元陣列,例如: String number; 等同於 char number[1000] ;
字串的字元陣列,並非每個元素都會儲存字元,因為字串最後會使用一個 "隱藏字元" 空字元 "\0",作為字串結束的符號,空字元以後的元素都會被忽略的
例如: number="a12bc3"; 等同於 number[]={'a', '1', '2', 'b', 'c', '3', '\0'};
輸入字串:
cin >> number; 會以"空白"字元當成字串結束,所以無法包含空白字元
getline(cin , number); 會以"enter"字元當成字串結束,所以可以包含空白字元
電腦使用二進位數字儲存資料,所以英文(數字)字元集必須由美國國家標準局(ANSI)所制定的ASCII碼進行編碼,例如:'0'編碼為48、 '1'編碼為49、 '2'編碼為50... ... '9'編為57;請您設計一個程式,可將密碼字串中的數字部分,擷取出來成為數字字串,並依破解位數切割為 N個整數
#include <iostream> // 引入 輸入輸出指令(函數)標頭檔
#include <string> // 引入 字串類別指令(函數)標頭檔
using namespace std; // 省略 名稱空間 std的簡寫方式
int main() { ... ... } // 主程式(函數)範圍
string sent; // 宣告字串變數
int digit; // 宣告整數變數
int i, j; // 宣告迴圈 i,j 變數(char:字元、int:整數、double:浮點數、bool:布林值)
// 邏輯運算子(&& 而且、 || 或者), 關係運算子(== 相等、!= 不相等、>= 大於等於、<= 小於等於)
cout << " 請輸入密碼字串(1-1000):"; // 輸出字串(使用雙引號)到螢幕
cin.ignore();
getline(cin,sent); // 從標準輸入(鍵盤)讀入字串(包含空白)
i=0; // 外層迴圈 初始值
while(sent[i]!='\0') { // 外層迴圈 while 判斷 字元陣列(字串)是否結束(\0)
if(sent[i]>='0' && sent[i]<='9') { // 內層條件判斷 if 判斷 字元陣列元素 是否為('0'~'9')字元
number[num_len]=sent[i]; // 擷取數字字元 儲存於數字字串陣列
cout << number[num_len];
num_len=num_len+1; // 計算數字字串的總長度
}
i=i+1; // 外層迴圈 遞增值
}
for(i=0;i<num_len;i=i+digit) { // 外層迴圈 for 判斷 字元陣列(數字字串)是否結束
num=0;
for(j=i;j<i+digit;j=j+1) { // 內層迴圈 for 進行 數字破解切割計算
num=num*10+int(number[j]-48); // 計算 數字破解切割的整數值
}
cout << (i/digit)+1 << ":" << num << endl;
total=total+num;
}
system("pause"); // 程式暫停指令
#include <stdlib.h> 引入 程式暫停指令 標頭檔
電腦使用二進位數字儲存資料,所以英文(數字)字元集必須由美國國家標準局(ANSI)所制定的ASCII碼進行編碼,例如:'0'編碼為48、 '1'編碼為49、 '2'編碼為50... ... '9'編為57;請您設計一個程式,可將密碼字串中的數字部分,擷取出來成為數字字串,並依破解位數切割為 N個整數,依序累加還原成為密碼整數數字。