关于c编程的小问题
作者:百变鹏仔日期:2023-10-26 08:52:24浏览:14分类:文字大全
同意 龙车花卉 所说
不过atoi()函数不在头文件:math.h
头文件应该是 stdlib.h
我这里给你提供两个我自己写的函数
分别用来读取 几个连续的整数还有浮点数
请笑纳
#include
#include
#include
/****** 可以转化成浮点数的 ******/
int getmyd(char * line,double **hisd)
/* (来源字符串 double指针的指针或者说是一个double指针的地址),
二次double指针用来修改主调函数的那个double指针的值,
返回值是double的个数,
*/
{ int alen=0,dlen;
char *give,*send;
double* myd;
dlen=2+(strlen(line)/2);
myd= (double*)calloc ( dlen,sizeof (double*));
give=line;
do
{send=give;
*(myd+alen)=strtod (send,&give);
alen++;
}
while (send!=give);
alen--;
*hisd=myd;
return alen;
}
/****** 可以转化成整数的 ******/
int getmyl(char * line,long **hisl)
/* (来源字符串 long指针的指针或者说是一个long指针的地址),
二次long指针用来修改主调函数的那个long指针的值,
返回值是long的个数,
*/
{ int alen=0,dlen;
char *give,*send;
long* myd;
dlen=2+(strlen(line)/2);
myd= (long*)calloc ( dlen,sizeof (long*));
give=line;
do
{send=give;
*(myd+alen)=strtol (send,&give,10);
alen++;
}
while (send!=give);
alen--;
*hisl=myd;
return alen;
}
/*
注意用完要记得在主调函数中 free(double *)或者free(long *)以释放资源;
以下是一个示例:
*/
main ( ){
int ul,ud;
long *myl;
double *myd;
char* hal=" 12 15 25 22 15 15 185";
char* had=" 12.3 15 25.9 22 15 15.1 185";
ul=getmyl(hal,&myl);
ud=getmyd(had,&myd);
printf ("this long %d\n",*myl);
printf ("this long %d\n",*(myl+1));
printf ("this long %d\n",*(myl+2));
printf ("\nul: long %d\n",ul);
for (int i=0;iNewStringUTF("utf-8");
jmethodID mid = env->GetMethodID(clsstring, "getBytes", "(Ljava/lang/String;)[B");
jbyteArray barr= (jbyteArray)env->CallObjectMethod(jstr, mid, strencode);
jsize alen = env->GetArrayLength(barr);
jbyte* ba = env->GetByteArrayElements(barr, JNI_FALSE);
if (alen > 0)
{
rtn = (char*)malloc(alen + 1);
memcpy(rtn, ba, alen);
rtn[alen] = 0;
}
env->ReleaseByteArrayElements(barr, ba, 0);
return rtn;
}
//char* to jstring
jstring stoJstring(JNIEnv* env, const char* pat)
{
jclass strClass = env->FindClass("Ljava/lang/String;");
jmethodID ctorID = env->GetMethodID(strClass, "", "([BLjava/lang/String;)V");
jbyteArray bytes = env->NewByteArray(strlen(pat));
env->SetByteArrayRegion(bytes, 0, strlen(pat), (jbyte*)pat);
jstring encoding = env->NewStringUTF("utf-8");
return (jstring)env->NewObject(strClass, ctorID, bytes, encoding);
}
鹏仔 微信 15129739599百科狗 baikegou.com
图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!
- 上一篇:已经是第一篇了
- 下一篇:已经是最后一篇了
- 搜索