65,187
社区成员




#include <iostream>
#include <stdlib.h>
#include <string.h>
using namespace std;
class StringParser
{
private:
int pos;
char *input_str;
char *delimiters;
public:
StringParser(char *inp, char *delim)
{
input_str = inp; delimiters = delim; pos = 0;
}
StringParser(char *inp)
{
input_str = inp; delimiters = ","; pos = 0;
}
char *get();
int get_int();
int more() {return input_str[pos] != '\0'; }
void reset() {pos = 0;}
};
int main()
{
char input_str[100] = {0};//记得初始化
char *p;
cout <<"Enter input line: ";
cin.getline(input_str,99);
StringParser parser(input_str,"/,");
while(parser.more())
{
p = parser.get();
cout << p << endl;
delete [] p;
}
return 0;
}
char *StringParser::get()
{
int i;
char *new_str;
while (strchr(delimiters,input_str[pos]))
pos++;
int substring_size = strcspn (input_str + pos,delimiters);
new_str = new char[substring_size+1];
for(i=0;i<substring_size;i++)
new_str[i] = input_str[pos+i];
new_str[substring_size] = '\0';
input_str=input_str+pos+substring_size+1;
pos=0;
return new_str;
}
int StringParser::get_int()
{
char *p = get();
return atoi(p);
delete [] p;
}