iT邦幫忙

2021 iThome 鐵人賽

DAY 27
0
Software Development

C++ 三十天學習紀錄系列 第 27

【Day 27】C String - Practice 2

Q3

題目、輸入輸出格式

Sol
這題是要找B有沒有在A字串中出現,我們就將 A 設為名叫first的字串陣列,B 為名叫second的字串陣列,由於不分大小寫,因此我們可以先用tolower函式將所有字元都換成小寫,接著用strstr(first, second)函式來找second有無包含於first中,若沒有則會回傳NULL

Pseudocode

char first[1000];
char second[1000];
cin.getline(first, 1000);
cin.getline(second, 1000);

for i in range 0~strlen(first)
	first[i] = tolower(first[i])
for i in range 0~strlen(second)
	second[i] = tolower(second[i])

if strstr(first, second) != nullptr
	輸出1
else
	輸出0

註:其實盡量是不要改輸入的資料內容,不過這邊我為了方便就沒有再另外設一個字元陣列。


Q4

題目、輸入輸出格式

Sol.
一開始輸入整數n代表之後會有多少需判讀的英文詞彙,接下來輸入x以表示甚麼字要被判斷,D 代表要被判斷的字,還要設一布林值includex當有出現在D,則改成true。
這邊輸入不能用 cin.getline 而是 cin,因為我們是一個字一個字判斷的。另外,由於我們知道總共會有多少詞彙會被輸入進,因此在輸入進資料的時候,可以不用 while 而是 for。

Pseudocode

bool include = false;
int n = 0;
char x[50];
將輸入進的x每一項都改成小寫。
char D[50];
for i in range 0~n – 1
	輸入進D並將其各項都改成小寫
	if x與D的字串長度相同 && strstr(x,D) != nullptr
		include = true
	else
		include = false
輸出 include

結語
以上就是一些基本的字串應用啦!如果很不確定裡面陣列中到底存的是甚麼,可以將它 print 出來看,也可以當作 debug 的方法!


上一篇
【Day 26】C String - Practice 1
下一篇
【Day 28】Self - defined Data Types
系列文
C++ 三十天學習紀錄30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言