tag 标签: 字符串

相关博文
  • 热度 21
    2016-4-13 20:26
    2249 次阅读|
    0 个评论
        在写基于对话框的程序,用到一个Button按钮,单击时,查询USB口接的设备,并在ComboBox控件里列出其描述符。 使用如下代码: str.Format(( "%s" ), BufPtrs );  // str为CString 变量 m_device_list.AddString(str);   // m_device_list为CComboBox 变量   编译提示错误:不能将参数 1 从“const char ”转换为“const wchar_t *。       查询资料得到结果:VS2010默认编码是Unicode,我将其改为多字节编码后,编译OK,运行也不出现乱码!但是,多字节编码已不推荐使用,应该是兼容性不好。 所以我将编码格式改为Unicode,看是否有其他方式可以解决? 代码修改为: str.Format(( _T("%s") , BufPtrs );  // str为CString 变量 m_device_list.AddString(str);   // m_device_list为CComboBox 变量   编译OK,但运行后,str内容为乱码,导致显示也是乱码!       后来,在网上找到一个说法:unicode环境下格式化ansi字符串要用 %S。 修改为: str.Format(( _T("%S") , BufPtrs );  // str为CString 变量 m_device_list.AddString(str);   // m_device_list为CComboBox 变量   编译OK,运行OK,无乱码!   最后说明:     1)Visual C++里边定义字符串的时候,用_T来保证兼容性,VC支持ascii和unicode两种字符类型,用_T可以保证从ascii编码类型转换到unicode编码类型的时候,程序不需要修改,它固定使用16 bits(两个字节)来表示一个字符。_T("")与L"",效果是一样的。 如: L"我的字符串" 表示将ANSI字符串转换成unicode的字符串,就是每个字符占用两个字节。strlen("asd") = 3; strlen(L"asd") = 6;     2)关于 %s 与 %S  https://msdn.microsoft.com/en-us/library/hf4y5e3w  
  • 热度 19
    2014-10-16 13:57
    1249 次阅读|
    0 个评论
    如果使用p指向函数堆栈区,那么整形或者字符型的变参就表示为: *((int *)p) 使用字符串作为变参函数的入口变参时,存储在函数堆栈中的,是字符串的首地址。字符串首地址的变参表示为: (char *)*((int *)p) 字符串包含的字符则依次表示为: ((char *)*((int *)p)) 或者 *((char *)*((int *)p) + 0) ((char *)*((int *)p)) 或者 *((char *)*((int *)p) + 1) ((char *)*((int *)p)) 或者 *((char *)*((int *)p) + 2)
  • 热度 21
    2014-7-6 22:43
    1562 次阅读|
    3 个评论
    在翻以前的博客的时候,发现有篇博客里边写的有问题。 http://forum.eet-cn.com/BLOG_ARTICLE_18773.HTM   首先以前在写关于这道面试题的想法时,将里边的变量p = "",误解为*p=""; 由于对于数组的赋值,一般都是在{}中进行的(字符数组可以使用=“”)。对于给字符串指针赋值,使用=""。 这里根据习惯想当然的也把这里的p 即字符数组,当将“”赋值给p 写作,*p,那么当将“”赋值给*p的时候,编译器将“”的地址写入到p,而*p将指向“”的第一个字符; 调用return p时,返回的是""的地址,由于“”是在rodata区的,内容不会被修改。所以可以再次引用这里的内容。 再次注意到这里,是想表明数组和指针之间的虽然使用方式很像,但是实际差异还是很大。虽然,指针跟数组在使用的时候,方式有些像,但是在程序中的实现差别就大了很多。
  • 热度 23
    2013-11-28 23:24
    1306 次阅读|
    4 个评论
    看到一篇博客,给出了下面一道关于C内存的笔试题: char*getmemory(void) { char p ="hello world"; p = 'h'; return p; } 会发生段错误提示。 在PC上还可能修改成功,但是在MCU中很可能是在FLash中的。 以下是测试: 从四次打印输出来看,地址是一致的。
  • 热度 34
    2013-4-7 00:55
    7917 次阅读|
    5 个评论
      C语言中, 利用宏定义一个字符串 #define MYPHONE "AT+CMGS"     字符数组的方式来定义一个字符串 unsigned char SMS ="HELLO, WELCOME TO RCCTS!"; unsigned char *String; unsigned char i=0; void main() {      printf("**************this procedure is to confirm \\0 's exist****************\n"); /********************************验证MYPHONE字符串末尾是否有\0字符*************************/      String=MYPHONE;      while(*String)               //当*String所指向的字符等于\0时跳出循环      {           i=*String;           printf("%c", i);           String++;      }      if(*String=='\0'){          //再次确认字符串的末尾是否有\0字符存在           printf("\\0");          //有则打印出来      }else{           printf("**");          //没有则打印**      }      printf("\nMYPHONE=%s\n", MYPHONE);          //打印字符串 这里%s的s必须为小写 /**************验证SMS字符串末尾是否有\0字符****************/      String=SMS;      while(*String)               //当*String所指向的字符等于\0时跳出循环      {           i=*String;           printf("%c", i);           String++;      }      if(*String=='\0'){          //再次确认字符串的末尾是否有\0字符存在           printf("\\0");          //有则打印出来      }else{           printf("**");          //没有则打印**      }      printf("\nSMS=%s\n", SMS);          //打印字符串 这里%s的s必须为小写 }   运行效果图:
相关资源
  • 所需E币: 4
    时间: 2019-12-25 15:04
    大小: 857.33KB
    上传者: quw431979_163.com
    数据结构讲义……
  • 所需E币: 4
    时间: 2019-12-25 12:05
    大小: 224KB
    上传者: wsu_w_hotmail.com
    字符串和文件第五章字符串和文件I/O5.1字符串字符串是ASCII字符的集合。如同其他语言一样,LabVIEW也提供了各种处理字符串的功能,如果想获得字符串的例子,可查看Examples\General\strings.llb。下面扼要介绍一些内容。•创建字符串控制对象和显示对象可以在Controls»String&Table中看到右边所显示字符串控制对象和显示对象。还可以使用操作工具或者标签工具输入或者改变字符串控制对象中的文本。用移位工具拖曳字符串控制对象和显示对象的边角可以增大它们的面积。[pic]练习5-1组合字符串目的:使用一些字符串功能函数将一个数值转换成字符串,并把该字符串和其他一些字符串连接起来组成一个新的输出字符串。前面板打开一个新的前面板,按照下图向其中添加对象。[pic]其中的两个字符串控制对象和数值控制对象可以合并成一个输出字符串并显示在字符串显示器中。数值显示器显示出字符串的长度。本练习中输出字符串是一个GPIB(IEEE488)命令字符串,它可用来与和串口仪器(RS-232或者RS-422)进行通信。流程图[pic]•FormatIntoString函数(Func……
  • 所需E币: 4
    时间: 2019-12-24 11:12
    大小: 2.23KB
    上传者: 2iot
    【一点一滴学嵌入式Linux】字符串操作—习题参考答案……