题目描述:
通过键盘输入任意一个字符串序列,字符串可能包含多个子串,子串以空格分隔。请编写一
个程序,自动分离出各个子串,并使用’,’将其分隔,并且在最后也补充一个’,’并将子
串存储。
如果输入“abc def gh i d”,结果将是abc,def,gh,i,d,
要求实现函数:
voidDivideString(const char *pInputStr, long lInputLen, char *pOutputStr);
【输入】 pInputStr: 输入字符串
lInputLen: 输入字符串长度
【输出】 pOutputStr: 输出字符串,空间已经开辟好,与输入字符串等长;
#include <iostream>
#include <cstdio>
#include <string>
#include <cstdlib>
using namespace std;
void DivideString(const char *pInputStr, long lInputLen, char *pOutputStr)
{
if(pInputStr==NULL||lInputLen==0) return;
long i=0;
while (pInputStr[i]==' ')i++;
bool isSpace=0;
long index=0;
for(;i<lInputLen;i++)
{
if(pInputStr[i]==' ')
{
isSpace=1;
continue;
}
if(isSpace)
pOutputStr[index++]=',';
pOutputStr[index++]=pInputStr[i];
}
pOutputStr[index]='\0';
}
int main()
{
long inputLen;
cin>>inputLen;
char *str=new char[inputLen+1]();
char *strOut=new char[inputLen+1]();
cin.get();
gets(str);
DivideString(str,inputLen,strOut);
cout<<strOut<<endl;
system("pause");
return 0;
}