Test Message

c929: 蝸牛老師的點名單-續

內容

繼第一堂課之後同學們因為太無聊了,開始在他們的名字之間空格改成各種不同的字串,例如” and “(不含引號),假設有兩位同學名字分別是”apple”及”banana”則他們會把點名單寫成”apple and banana”(不含引號),蝸牛老師很頭痛,希望你幫他寫一個程式把大家的名字分成一行一行的。


輸入

第一行為一個字串 s 代表大家名字中間的字串,第二行為蝸牛老師拿到的點名單。(字元範圍為 ASCII 32~126) 字串長度皆小於 1000

範例一:
and
appleandbanana

範例二
,
baluteshih ,leo , alan

輸出

請將同學們名字分成一行一行輸出。

範例一:
apple
banana

範例二:
baluteshih
leo
 alan


解題思路

簡單的字串處理。


完整程式碼

AC (2ms, 92KB)
#include <stdio.h>
#define SIZE 2000

int oLen;
char spilt[SIZE], input[SIZE], output[SIZE];

inline int strspt(int* idx, char* spilt)
{
int i = 0;
for (; spilt[i]; i++)
{
if (input[*idx + i] != spilt[i] || !input[*idx + i])
return 0;
}
*idx += i - 1;
return 1;
}

int main()
{
gets(spilt), gets(input);
for (int i = 0; input[i]; i++)
{
if (strspt(&i, spilt))
output[oLen++] = '\n';
else
output[oLen++] = input[i];
}
puts(output);
return 0;
}