strcat没有冲洗

时间:2013-02-24 12:29:01

标签: c++ arduino strcat

我在arduino中有这段代码

void function(int x){
    char* response="GET /postTEST.php?first=";

    char strx[2] = {0};
    int num = x;
    sprintf(strx, "%d", num); 

    original=response;
    strcat(response,strx);
    Serial.println(response);
    //memset(response,'\0',80);
}

基本上,它是将一个整数加到我的帖子字符串中。不幸的是,它以某种方式成长并成为     GET /postTEST.php?first=0     GET /postTEST.php?first=01     GET /postTEST.php?first=012 随着我增加我。

为什么?

1 个答案:

答案 0 :(得分:3)

您无法修改字符串文字。字符串文字是常量。

您必须将其声明为具有足够空间的数组以添加数字。

你也做了一些不必要的步骤,我建议这样的事情:

void function(int x)
{
    char response[64];

    sprintf(response, "GET /postTEST.php?first=%d", x);

    Serial.println(response);
}