Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <jni.h>
- #include <string>
- #include <vector>
- long fib(long n)
- {
- if (n < 3)
- return 1;
- return fib(n-1) + fib(n-2);
- }
- std::string toUpper(std::string str)
- {
- std::string result = str;
- for(char &c : result)
- {
- if (c >= 'a' && c <= 'z')
- c = c - 'a' + 'A';
- }
- return result;
- }
- extern "C"
- {
- JNIEXPORT jstring JNICALL
- Java_com_example_adam_lab3_MainActivity_stringFromJNI(
- JNIEnv *env,
- jobject /* this */) {
- std::string hello = "Hello from C++";
- return env->NewStringUTF(hello.c_str());
- };
- JNIEXPORT jlong JNICALL Java_com_example_adam_lab3_MainActivity_fib
- (JNIEnv *env, jclass jc, jlong n)
- {
- return fib(n);
- };
- JNIEXPORT jstring JNICALL Java_com_example_adam_lab3_MainActivity_toUpper
- (JNIEnv *env, jclass jc, jstring jStr)
- {
- if(!jStr)
- return env->NewStringUTF("");
- std::vector<char> charsCode;
- const jchar *chars = env->GetStringChars(jStr, NULL);
- jsize len = env->GetStringLength(jStr);
- jsize i;
- for( i=0;i<len; i++){
- int code = (int)chars[i];
- charsCode.push_back( code );
- }
- env->ReleaseStringChars(jStr, chars);
- return env->NewStringUTF(toUpper(std::string(charsCode.begin(), charsCode.end())).c_str());
- };
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement