gpt4 book ai didi

将 int 转换为字符串并连接结果

转载 作者:太空宇宙 更新时间:2023-11-04 08:07:37 25 4
gpt4 key购买 nike

我尝试将字符串与转换为字符串的整数连接起来,并将结果写入文件。

这是我的代码(简化版):

char * convert_int_string(int val)
{
char * str = malloc(sizeof(char)*64);
sprintf(str,"%d",val);
return str;
}

char * parse_val(int val){
char * str = malloc(sizeof(char)*64);
char * str2 = convert_int_string(val);
strcat(str, "test");
strcat(str,str2);
free(str2);
return str;
}

fprintf(my_file, "%s\n", parse_val(42));

但我得到了这个结果,但我不明白为什么(这里 val 等于 42):

��7s�test42

(我用了这个帖子 How do I concatenate const/literal strings in C? 和这个 How to convert integer to string in C? )

最佳答案

你得到垃圾输出的原因是因为你给 strcat 的是垃圾。事实上,您为 str 分配了 64 个字节,但您没有初始化它,所以您不知道它包含哪些字节。您可以使用 calloc 而不是 malloc 或使用 memset 将 0 放入 str

编辑:事实上,您只需要将\0 作为 str 的第一个字节。实际上,strcat 首先在目标字符串中查找\0 字符,然后从那里添加第二个字符串

关于将 int 转换为字符串并连接结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41656273/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com