筆試題目(機試,共兩題)
題目一:子串分離
題目描述:
通過鍵盤輸入任意一個字符串序列,字符串可能包含多個子串,子串以空格分隔。請編寫一個程序,自動分離出各個子串,並使用’,’將其分隔,並且在最後也補充一個’,’並將子串存儲。
如果輸入“abc def gh i d”,結果將是abc,def,gh,i,d,
要求實現函數:
void DivideString(const char *pInputStr, long lInputLen, char *pOutputStr);
【輸入】 pInputStr: 輸入字符串
lInputLen: 輸入字符串長度
【輸出】 pOutputStr: 輸出字符串,空間已經開辟好,與輸入字符串等長;
【注意】只需要完成該函數功能算法,中間不需要有任何IO 的輸入輸出
示例
輸入:“abc def gh i d”
輸出:“abc,def,gh,i,d,”
void DivideString(const char* pInputStr , long lInputLen , char* pOutputStr)
{
int i , j;
bool flag;
for(i = 0 ; pInputStr[i] == ' ' ; ++i) //跳過字符串前面的空格
;
flag = true;
for(j = 0 ; i < lInputLen ; ++i)
{
if(pInputStr[i] != ' ')
{
if(!flag)
flag = true;
pOutputStr[j++] = pInputStr[i]; //將各個子串分離保存下來
}
else
{
if(flag)
pOutputStr[j++] = ',';
flag = false;
}
}
pOutputStr[j++] = ',';
pOutputStr[j++] = '\0';
}
接下來請看第2頁精彩內容: http://www.linuxidc.com/Linux/2013-09/90496p2.htm