good app for pdf

These are few apps for pdf related work which are tested by my self.
Gimp( from apk pure )
This is a good app for both creating and reading and useful in other works also do this make this good choice. Making pdf doesnot give proper fitting but reading pdf using gimp is easy.
This work flow is pretty easy.
Kagazz. App
Google drive

tokenizing a string in c++

 Tokenizing a string using c /c++

Below is the code for c/c++ this a function works for me in c++. If any problem comment below. 

the string str[] variable string is declared out side of function passed to function to store the tokens in the string array.remember to allocate sufficient or more space

Required parameters for function : char str[],string s[],const char t

1 parameter: str[] is the string which you wanted to tokenize.

2 parameter :s[] is string arrray used to store the token.Declare it before function passed;

3 parameter:  t is char character at which the string should be tokenize();

Return value: none 

look function and sample code below.

Function:

void tokenize(char str[],string s[],const char t){int i=0;

    string token;int j=0;int len=strlen(str);

    for(int i=0;i< len;i++){

	    if (str[i]== t ){

		    s[j]=token;j++;token=" ";

	    }else{token.push_back(str[i]);}

	    if (i==len-1){s[j]=token;}

    }

}

sample code for testing(c++)

#include <iostream>
#include <cstring>
using namespace std;
void tokenize(const char str[],string s[],const char t){int i=0;

	string token;int j=0;int len=strlen(str);

	for(int i=0;i<len;i++){

		if (str[i]== t ){

			s[j]=token;j++;token="";

		}else{
            token.push_back(str[i]);}
		if (i==len-1){s[j]=token;}
	}

}
void printA(string s[],int n){
	for(int i=0;i<n;i++){
		cout<<s[i]<<'\n';
	}}
int main(int arg,char**argv){
	string str="it is a beautiful dog I have ever seen";
	string s[9];
	tokenize(str.c_str(),s,' ');
	printA(s,9);
	return 0;}

Output

it
is
a
beautiful
dog
I
have
ever
seen

Press ENTER or type command to continue