首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在连接字符串时获取不必要的值

在连接字符串时获取不必要的值
EN

Stack Overflow用户
提问于 2011-06-20 15:04:02
回答 2查看 78关注 0票数 0

我在连接字符串时遇到了问题。我认为这是一个愚蠢的问题,但我不明白为什么我要发布here.Please answer.Thats me。

源代码是

代码语言:javascript
复制
unsigned char arr_25[] = "{\"category\":\"",
    arr_10[]="FMCG",
    arr_26[]="\"amount\":",
    arr_11[]="\",",
    arr_12[]="1000",
    arr_13[]="}";

float amount=1500,totamount=2500;

for(i=0;i<=count;i++)
{
    if(i>0)
       strcat(buff,",");

    strcat(buff,arr_25);
    strcat(buff,arr_10);//I am getting unnecessary value while printing this arr_10
    strcat(buff,arr_11);
    strcat(buff,arr_26);

    memset(arr_12,0,sizeof(arr_12));

    sprintf(arr_12,"%.2f",amount);
    printf("\n the amount is %s \n",arr_12);

    strcat(buff,arr_12);
    strcat(buff,arr_13);
}

在打印buff值之后,我得到

代码语言:javascript
复制
{"category":"FMCG","amount":1500.00},{"category":"FMCG00"amount":1500.00},{"category":"FMCG00"amount":1500.00},{"category":"FMCG00"amount":1500.00} 

我得到了:"FMCG,FMCG00,FMCG00..."

为什么会发生这种情况?当我将arr-10值硬编码为FMCG时?

提前感谢....

EN

回答 2

Stack Overflow用户

发布于 2011-06-20 15:17:04

我不知道这是否是直接原因,但您肯定是在超载arr_12。您已经将其定义为大小为5,然后将"1500.00“写入其中。

票数 1
EN

Stack Overflow用户

发布于 2011-06-20 16:43:22

您可能超出了某些变量(arr_12?)。用snprintf更改sprintf,应该不会有问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6407837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档