/*
file: test.cpp
test file for this class
*/
#include <stdio.h>
#include "functions.hpp"
int main(){
Functions* spliting = new Functions();
char* text = "ab|fgh|xxx";
char** splitted = 0;
splitted = spliting->splitChar(text, '|');
printf("Text before splitting: %s/n", text);
printf("Text after splitting by |:/n");
for(int i=0; i<spliting->getSplitSize(); i++){
printf("%s/n", splitted[i]);
}
windows下用DOS编译就行, >cl functions.cpp test.cpp >link functions.obj test.obj
splitted = 0;
delete(spliting);
delete(splitted);
return(0);
}
/*
file: Functions.hpp
*/
#ifndef FUNCTIONS_HPP
#define FUNCTIONS_HPP
class Functions{
public:
Functions();
~Functions();
char** splitChar(char*, char);
int getSplitSize();
private:
int _splitSize;
};
#endif
// Functions.cpp: implementation of the Pareto class.
//
//
#include<time.h>
#include<math.h>
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
#include "functions.hpp"
#define uint unsigned int
//
// Construction/Destruction
//
Functions::Functions():
_splitSize(0){
}
Functions::~Functions(){
}
char** Functions::splitChar(char* linea, char divider){
uint i = 0;
uint count = 0;
int count2 = 0;
int j=0;
uint a = strlen(linea);
printf("size of text = %d/n", a);
for(i= 0 ; i< (a); i++){
if(linea[i]==10||linea[i]==13)
linea[i]='/0';
}
for(i=0; i<strlen(linea); i++){
if(linea[i]==divider)
{
count++;
}
}
printf("count = %d/n", count);
_splitSize = count+1;
printf("_splitSize = %d/n", _splitSize);
char** theReturn = new char*[count+1];
for(i=0; i<count+1; i++){
theReturn[i] = new char[10];
}
for(i=0; i<strlen(linea)+1; i++)
{
printf("text[%d]=%c/n", i, linea[i]);
if(linea[i]==divider||linea[i]=='/0')
{
theReturn[count2][j] = '/0';
printf("**** linea = divider | or end code ......./n");
j=0;
count2++;
} else
{
theReturn[count2][j++] = linea[i];
printf("theReturn[%d]=%c/n", count2, theReturn[count2]);
}
}
for(int ireturn=0; ireturn<_splitSize; ireturn++)
printf("%s/n", theReturn[ireturn]);
return(theReturn);
}
int Functions::getSplitSize(){
return(_splitSize);
}