极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 14204|回复: 8

String的问题

[复制链接]
发表于 2016-5-24 23:22:45 | 显示全部楼层 |阅读模式
String Num1=“danger”;
String Num2=“”;
Num2是一个变化的字符串,但是我想把Num2放到Num1后面,应该怎么弄。。。
求大虾来解决。。
回复

使用道具 举报

发表于 2016-5-25 12:58:25 | 显示全部楼层
C 语言中有标准的输入输出函数和字符串转换函数,strcpy();strcat();
char *p1,*p2,str[20]="xyz";
    p1="abcd";
    p2="ABCD";
    strcpy(str+1, strcat(str+1, p2+1));//strcat实现两个字符串从第一个参数的内存起始位置,连接(catenate链接),注意第一个参数要有空间容纳第二个参数,否则会报错。

    printf("%s",str);

结果:xbcdBCD
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-5-25 14:35:58 | 显示全部楼层
164335413 发表于 2016-5-25 12:58
C 语言中有标准的输入输出函数和字符串转换函数,strcpy();strcat();
char *p1,*p2,str[20]="xyz";
    p ...

谢谢你!完美的解决了问题。
回复 支持 反对

使用道具 举报

发表于 2016-5-25 21:06:26 | 显示全部楼层
  1. void setup()
  2. {
  3.         Serial.begin(9600);
  4. }

  5. void loop()
  6. {
  7.         String a1 = "abcd";
  8.         String a2 = "1234";
  9.         String a3;
  10.         a3 = a1+a2;
  11.         Serial.println(a3);
  12.         delay(2000);
  13. }
复制代码
串口输出的结果:
abcd1234
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-5-26 13:58:40 | 显示全部楼层
i7456 发表于 2016-5-25 21:06
串口输出的结果:
abcd1234

我需要的a2读传感器的值不是固定的,直接加不行的,我试过。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-5-26 15:32:14 | 显示全部楼层
164335413 发表于 2016-5-25 12:58
C 语言中有标准的输入输出函数和字符串转换函数,strcpy();strcat();
char *p1,*p2,str[20]="xyz";
    p ...

你的代码意思我明白了,但是要是我想定义一个字符串,字符串取的是传感器的输出的值(我把它转成字符串了),char *Num;*Num=(char)Temperature ;编译不通过。。。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-5-26 15:36:28 | 显示全部楼层
164335413 发表于 2016-5-25 12:58
C 语言中有标准的输入输出函数和字符串转换函数,strcpy();strcat();
char *p1,*p2,str[20]="xyz";
    p ...

在loop()里面定义字符串并把值给它的话,程序话卡死。。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-5-26 15:38:57 | 显示全部楼层
164335413 发表于 2016-5-25 12:58
C 语言中有标准的输入输出函数和字符串转换函数,strcpy();strcat();
char *p1,*p2,str[20]="xyz";
    p ...

              char Num2[8],Num3[8],Num4[8],Num5[8];              
              Num2=String(tempC);
              Num3=String(val1);
              Num4=String(DallasTemperature::toFahrenheit(tempC)/3.5);
              Num5=String(val2);
这样也不行
回复 支持 反对

使用道具 举报

发表于 2016-5-27 22:25:39 | 显示全部楼层
溜溜丶 发表于 2016-5-26 15:38
char Num2[8],Num3[8],Num4[8],Num5[8];              
              Num2=String(tempC ...
  1. float pi = 3.1416;
  2. char floatbuffer[10];
  3. String str1 = "temp is ";
  4. String str;

  5. void setup()
  6. {
  7.         Serial.begin(9600);
  8.         Serial.println("Hello.");
  9.         delay(500);
  10.         dtostrf(pi, 4, 4, floatbuffer);
  11.         str = String(floatbuffer);
  12.         Serial.println(str1+str);
  13. }

  14. void loop()
  15. {
  16. }
复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-20 09:39 , Processed in 0.047638 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表