信息学奥赛一本通 1129:统计数字字符个数 | OpenJudge NOI 1.7 01
生活随笔
收集整理的這篇文章主要介紹了
信息学奥赛一本通 1129:统计数字字符个数 | OpenJudge NOI 1.7 01
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
【題目鏈接】
ybt 1129:統計數字字符個數
OpenJudge NOI 1.7 01:統計數字字符個數
【題目考點】
1. 字符串處理
- 聲明字符數組:char s[100];(數組長度根據實際情況而定)
- 輸入字符串:cin>>s;(字符串中無空格),cin.get(s, 100);(字符串中有空格)
- 獲取字符串長度:int len = strlen(s);
- 遍歷字符數組for(int i = 0; i < len; ++i){/*遍歷操作*/}
2. 讀取帶空格的字符串
- 使用字符數組:char s[100];
- 可以使用函數cin.get(字符數組名, 最大讀取長度),如:cin.get(s, 100);
- 可以使用fgets(字符數組名, 最大讀取長度, stdin),如:fgets(s, 100, stdin);
- 函數gets(字符數組名),例gets(s);,不推薦使用。由于gets()不檢查字符串的大小,必須遇到換行符或文件結尾才會結束輸入,因此容易造成緩存溢出的安全性問題,導致程序崩潰,通常情況下沒有問題,但不推薦使用。
- 使用string類:string s;
- 使用getline函數,getline(cin, string類對象),例:getline(cin, s);
【題解代碼】
解法1:
使用字符數組
#include <bits/stdc++.h> using namespace std; int main() {char s[260];cin.get(s, 260);int sum = 0, len = strlen(s);for(int i = 0; i < len; ++i){if(s[i] >= '0' && s[i] <= '9')sum++;}cout<<sum;return 0; }解法2:
使用string類
#include <bits/stdc++.h> using namespace std; int main() {string s;getline(cin, s);int sum = 0;for(int i = 0; i < s.length(); ++i){if(isdigit(s[i]))//使用<ctype.h>中的類型判斷函數sum++;}cout<<sum;return 0; }總結
以上是生活随笔為你收集整理的信息学奥赛一本通 1129:统计数字字符个数 | OpenJudge NOI 1.7 01的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 信息学奥赛一本通(1177:奇数单增序列
- 下一篇: 信息学奥赛一本通 1978:【18NOI