溜溜丶 发表于 2016-5-24 23:22:45

String的问题

String Num1=“danger”;
String Num2=“”;
Num2是一个变化的字符串,但是我想把Num2放到Num1后面,应该怎么弄。。。
求大虾来解决。。

164335413 发表于 2016-5-25 12:58:25

C 语言中有标准的输入输出函数和字符串转换函数,strcpy();strcat();
char *p1,*p2,str="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 static/image/common/back.gif
C 语言中有标准的输入输出函数和字符串转换函数,strcpy();strcat();
char *p1,*p2,str="xyz";
    p ...

谢谢你!完美的解决了问题。

i7456 发表于 2016-5-25 21:06:26

void setup()
{
        Serial.begin(9600);
}

void loop()
{
        String a1 = "abcd";
        String a2 = "1234";
        String a3;
        a3 = a1+a2;
        Serial.println(a3);
        delay(2000);
}
串口输出的结果:
abcd1234

溜溜丶 发表于 2016-5-26 13:58:40

i7456 发表于 2016-5-25 21:06 static/image/common/back.gif
串口输出的结果:
abcd1234

我需要的a2读传感器的值不是固定的,直接加不行的,我试过。

溜溜丶 发表于 2016-5-26 15:32:14

164335413 发表于 2016-5-25 12:58 static/image/common/back.gif
C 语言中有标准的输入输出函数和字符串转换函数,strcpy();strcat();
char *p1,*p2,str="xyz";
    p ...

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

溜溜丶 发表于 2016-5-26 15:36:28

164335413 发表于 2016-5-25 12:58 static/image/common/back.gif
C 语言中有标准的输入输出函数和字符串转换函数,strcpy();strcat();
char *p1,*p2,str="xyz";
    p ...

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

溜溜丶 发表于 2016-5-26 15:38:57

164335413 发表于 2016-5-25 12:58 static/image/common/back.gif
C 语言中有标准的输入输出函数和字符串转换函数,strcpy();strcat();
char *p1,*p2,str="xyz";
    p ...

            char Num2,Num3,Num4,Num5;            
            Num2=String(tempC);
            Num3=String(val1);
            Num4=String(DallasTemperature::toFahrenheit(tempC)/3.5);
            Num5=String(val2);
这样也不行

i7456 发表于 2016-5-27 22:25:39

溜溜丶 发表于 2016-5-26 15:38 static/image/common/back.gif
char Num2,Num3,Num4,Num5;            
            Num2=String(tempC ...

float pi = 3.1416;
char floatbuffer;
String str1 = "temp is ";
String str;

void setup()
{
        Serial.begin(9600);
        Serial.println("Hello.");
        delay(500);
        dtostrf(pi, 4, 4, floatbuffer);
        str = String(floatbuffer);
        Serial.println(str1+str);
}

void loop()
{
}
页: [1]
查看完整版本: String的问题