char函数

JNI笔记-字符串拼接

大憨熊 提交于 2019-12-13 09:31:18
参考博客:https://blog.csdn.net/cloverjf/article/details/78851988 记录一下在JNI中,由java传递到JNI,然后拼接返回新字符串的实现方式: 1、简单粗暴型 extern "C" JNIEXPORT jstring JNICALL Java_com_wyl_ndkdemo_JniTest_contactString2 ( JNIEnv * env , jobject thiz , jstring str1 , jstring str2 ) { //1、直接使用GetStringUTFChars方法将传递过来的jstring转为char* char * c1 = ( char * ) ( env -> GetStringUTFChars ( str1 , JNI_FALSE ) ) ; char * c2 = ( char * ) ( env -> GetStringUTFChars ( str2 , JNI_FALSE ) ) ; //2、再使用本地函数strcat 拼接两个char*对象,然后NewStringUTF转为jstring返回去 char * res = strcat ( c1 , c2 ) ; return env -> NewStringUTF ( res ) ; } 2、活学活用型 在学习JNI的过程中

STM32CubeIDE+FreeRTOS任务通知实验

核能气质少年 提交于 2019-12-13 00:11:40
任务通知代替消息队列是在 FreeRTOS 中创建了三个任务, 其中两个任务是用于接收任务通知,另一个任务发送任务通知。三个任务独立运行,发送消息任务是通过检测按键的按下情况来发送消息通知,另两个任务获取消息通知,在任务通知中没有可用的通知之 前就一直等待消息,一旦获取到消息通知就把消息打印输出 创建工程RTOS_TaskNotify, 配置HCLK,使用内部晶振,频率为180MHZ(根据板子设置) 将SYS中时基源(Timebase Source)改为除SysTick之外的任意定时器即可,如: 配置板载的按键KEY1和KEY2 配置FreeRTOS ,使用CMSIS_V1, 定义三个任务,SendTask、ReceiveTask01和ReceiveTask02 Ctrl + S生成代码 修改代码, 1,在main.h中添加 /* Private includes ----------------------------------------------------------*/ /* USER CODE BEGIN Includes */ #include "stdio.h" /* USER CODE END Includes */ 2,在mian.c中添加 /* USER CODE BEGIN PFP */ int _write(int file , char *ptr

2019年12月12日

纵饮孤独 提交于 2019-12-12 22:59:17
一个由C/C++编译的程序占用的内存分为以下几个部分, 1、栈区(stack),由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap),一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区(static),全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另 一块区域。 程序结束后由系统释放。 4、文字常量区 ,常量字符串就是放在这里的。 程序结束后由系统释放 5、程序代码区,存放函数体的二进制代码。 二、例子程序 这是一个前辈写的,非常详细 //main.cpp int a = 0; 全局初始化区 char *p1; 全局未初始化区 main() { int b; 栈 char s[] = “abc”; 栈 char *p2; 栈 char *p3 = “123456”; 123456\0在常量区,p3在栈上。 static int c =0; 全局(静态)初始化区 p1 = (char *)malloc(10); p2 = (char *)malloc(20); 分配得来得10和20字节的区域就在堆区。 strcpy(p1, “123456”);

c语言string函数详解

旧城冷巷雨未停 提交于 2019-12-12 22:24:32
文章转自:https://blog.csdn.net/yukadimun/article/details/81388977 @函数原型: char *strdup(const char *s) 函数功能: 字符串拷贝,目的空间由该函数分配 函数返回: 指向拷贝后的字符串指针 参数说明: src-待拷贝的源字符串 所属文件: <string.h> [cpp] view plain copy #include <stdio.h> #include <string.h> #include <alloc.h> int main() { char *dup_str, *string=“abcde”; dup_str=strdup(string); printf("%s", dup_str); free(dup_str); return 0; } @函数名称: strcpy 函数原型: char* strcpy(char* str1,char* str2); 函数功能: 把str2指向的字符串拷贝到str1中去 函数返回: 返回str1,即指向str1的指针 参数说明: 所属文件: <string.h> [cpp] view plain copy #include <stdio.h> #include <string.h> int main() { char string[10]; char

SQL server的字段类型详解

泪湿孤枕 提交于 2019-12-12 18:02:34
SQL server的字段类型详解 bit 整型 bit数据类型是整型,其值只能是0、1或空值。这种数据类型用于存储只有两种可能值的数据,如Yes 或No、True 或False 、On 或Off. 注意:很省空间的一种数据类型,如果能够满足需求应该尽量多用。 tinyint 整型 tinyint 数据类型能存储从0到255 之间的整数。它在你只打算存储有限数目的数值时很有用。这种数据类型在数据库中占用1 个字节. 注意:如果bit类型太单调不能满足您的需求,您可以考虑用tinyint类型,因为这个类型相对也是比较安全的,不接受恶意脚本内容的嵌入。 smallint 整型 smallint 数据类型可以存储从- 2的15次幂(-32768)到2的15次幂(32767)之间的整数。这种数据类型对存储一些常限定在特定范围内的数值型数据非常有用。这种数据类型在数据库里占用2 字节空间. 注意:如果tinyint类型太单调不能满足您的需求,您可以考虑用smallint类型,因为这个类型相对也是比较安全的,不接受恶意脚本内容的嵌入。 int 整型 int 数据类型可以存储从- 2的31次幂(-2147483648)到2的31次幂 (2147483 647)之间的整数。存储到数据库的几乎所有数值型的数据都可以用这种数据类型。这种数据类型在数据库里占用4个字节. 注意

回调函数使用详解

最后都变了- 提交于 2019-12-12 13:04:44
转载自: https://blog.csdn.net/miao19920101/article/details/75648491 回调函数的使用 回调函数在C语言中是通过函数指针来实现的,通过将回调函数的地址传给被调函数从而实现回调。因此,要实现回调,必须首先定义函数指针。 1. 回调指针 概念:指针是一个变量,是用来指向内存地址的。一个程序运行时,所有和运行相关的物件都是需要加载到内存中,这就决定了程序运行时的任何物件都可以用指针来指向它。函数是存放在内存代码区域内的,它们同样有地址,因此同样可以用指针来存取函数,把这种指向函数入口地址的指针称为函数指针。 1. 采用函数调用的一般形式 首先看一个hello world!的程序: int application_start( void ) { OSStatus err = kNoErr; char *s ="hello world !"; app_log(" s:%s",s); return err; } 打印的结果是: [0][TCP: main.c: 90] s:hello world ! 如果采用函数调用的形式来实现: //声明 void Islog( char *s); int application_start( void ) { OSStatus err = kNoErr; Islog("hello world !")

Windows下C/C++可变参数宏实现技巧

喜你入骨 提交于 2019-12-12 12:26:11
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> Windows 下 C/C++ 可变参数宏实现技巧 在开发过程中,有很多阶段,每个阶段可能会注重不同的重点,我们可能会在不同阶段让程序输出或者打印不同的信息以反应运行的情况,所以我们必须分阶段的使得程序输出我们在每个阶段所要关心的信息,甚至在最后让程序不再输出信息。这就要用到了宏定义! 我们知道,在 linux 下很方便的就能实现可变参数宏的定义, 比如: # define myprint(fmt, a...) printf("%s,%s(),%d:" fmt "/n", __FILE__,__FUNCTION__,__LINE__, ##a) 就定义了自己的输出宏,当不必再输出这些可能是调式,跟踪,断言,日志 ... 的信息时,可以再定义宏为空: #define myprintf(fmt,a...) 这样,重新编译后,这些宏引用的地方将全部没有语句,从而省去这些开销。 但是,在 windows 下,一般我们采用的 VC6.0,VS2003,VS2005,VS2008( 待定 ) 编辑器中自带的 C/C++ 编译器并不支持变参宏的定义, gcc 编译器支持,据说最新版本的 C99 也支持。 可以在windows下这样定义宏: #define myprint printf 但 是,当后期不想再要宏输出了,只能定义

几个多字节和UNICODE及UTF-8之间相互转化的函数(转)

杀马特。学长 韩版系。学妹 提交于 2019-12-12 10:51:04
https://blog.csdn.net/mao0514/article/details/85986411 做vc++开发免不了多字节UNICODE、UTF-8转来转去,下面贴出我写的几个字符转化函数  1、 TCHAR 和CHAR转化, TCHAR 对应UNICODE和多字节下分别是WCHAR 和CHAR 函数如下:   需要注意*dest是new出来的需要释放 /char 字符串转化为tchar字符串 void C2T(TCHAR** dest, const char* src) { #ifdef _UNICODE if (src == NULL) { return ; } size_t alen = strlen(src) + 1; size_t ulen = (size_t)MultiByteToWideChar(CP_ACP, 0, src,alen,NULL, 0 )+1; *dest = new WCHAR[ulen]; ::MultiByteToWideChar(CP_ACP, 0, src, alen, *dest, ulen); #else //多字节TCHAR就是 char  int len = strlen(src)+1; *dest = new char[len]; strcpy(*dest, src); #endif } 2、TCHAR转化为多字节

解决python 读取hive表的char类型字段返回 keyerror:21

蓝咒 提交于 2019-12-12 05:00:09
这是python不支持char类型所致,使用cast函数将char类型的字段转数据类型即可,比如 select cast(finish_flag as string) finish_flag from sor_data.test1; 这样的sql是可以运行的。 来源: CSDN 作者: JRighte 链接: https://blog.csdn.net/weixin_38507462/article/details/103497218

strcpy, strcpy_s, strncpy, strncpy_s整合

♀尐吖头ヾ 提交于 2019-12-12 03:17:18
strcpy, strcpy_s, strncpy, strncpy_s strcpy用法: strcpy_s用法: strncpy用法: strncpy_s用法: strcpy用法: 原型声明 :char *strcpy(char* dest, const char *src); 头文件 :#include <string.h> 和 #include <stdio.h> 功能 :把含有’\0’结束符的字符串复制到另一个地址空间,返回值的类型为char*。 说明 :src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。 strcpy_s用法: 该函数是VS2005之后的VS提供的,并非C标准函数 原型 :三个參数时:errno_t strcpy_s(char *strDestination, size_t numberOfElements, const char *strSource); 两个參数时:errno_t strcpy_s(char (&strDestination)[size], const char *strSource); // C++ only 功能 :同strcpy()函数功能相同,不同之处在于参数中多了个size_t类型的参数,该参数为字符串dst的长度,当存在缓存区溢出的问题时(即src的长度大于dst的长度),strcpy