華為機試—子串分離,華為串分離
題目描述:
通過鍵盤輸入任意一個字串序列,字串可能包含多個子串,子串以空格分隔。請編寫一個程式,自動分離出各個子串,並使用’,’將其分隔,並且在最後也補充一個’,’並將子串儲存。
如果輸入“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,”
#include<string.h>#include<stdio.h>void DivideString(const char *pInputStr, long lInputLen, char *pOutputStr){ int j=0; char pre='*'; for(long i=0;i<lInputLen;++i) { if(pInputStr[i]!=' ') { pOutputStr[j++]=pInputStr[i]; } else if(pre!=' ') { pOutputStr[j++]=','; } pre=pInputStr[i]; } pOutputStr[j++]=','; pOutputStr[j++]='\0';}int main(int argc, char *argv[]){ char input[200]; char output[200]; while(gets(input)) { DivideString(input ,strlen(input), output); printf("%s\n",output); } return 0;}