c语言 字符串拼接后输出到文件中,死循环

C\u8bed\u8a00\u4e2d\u4e24\u5b57\u7b26\u600e\u4e48\u62fc\u63a5?

\u53ef\u4ee5\u5148\u5b9a\u4e49\u4e24\u4e2a\u5b57\u7b26\u6570\u7ec4 \u5206\u522b\u5b58\u653e\u9700\u8981\u62fc\u63a5\u7684\u5b57\u7b26.\u7136\u540e\u4f7f\u7528strcpy()\u51fd\u6570\u6765\u5b9e\u73b0\u62fc\u63a5,

C\u8bed\u8a00\u4e2d\u62fc\u63a5\u5b57\u7b26\u4e32\u53ef\u4ee5\u4f7f\u7528strcat\u51fd\u6570\u3002
1\u3001strcat()\u51fd\u6570 ,\u5373string catenate\u7684\u7f29\u5199
\u539f\u578b\uff1aextern char *strcat(char *dest,char *src); \u7528\u6cd5\uff1a#include \u529f\u80fd\uff1a\u628asrc\u6240\u6307\u5b57\u7b26\u4e32\u6dfb\u52a0\u5230dest\u7ed3\u5c3e\u5904(\u8986\u76d6dest\u7ed3\u5c3e\u5904\u7684'\0')\u5e76\u6dfb\u52a0'\0'\u3002 \u8bf4\u660e\uff1asrc\u548cdest\u6240\u6307\u5185\u5b58\u533a\u57df\u4e0d\u53ef\u4ee5\u91cd\u53e0\u4e14dest\u5fc5\u987b\u6709\u8db3\u591f\u7684\u7a7a\u95f4\u6765\u5bb9\u7eb3src\u7684\u5b57\u7b26\u4e32\u3002 \u8fd4\u56de\u6307\u5411dest\u7684\u6307\u9488\u30022\u3001\u4e3e\u4f8b\uff1a
#include #include int main(){ char d[20]="\u5b57\u7b26\u4e321"; //\u7b2c\u4e00\u4e2a\u5b57\u7b26\u4e32 char *s=" \u5b57\u7b26\u4e322"; //\u7b2c\u4e8c\u4e2a\u5b57\u7b26\u4e32 strcat(d,s); //\u62fc\u63a5\u4e24\u4e2a\u5b57\u7b26\u4e32\uff0c\u7ed3\u679c\u4fdd\u5b58\u5728\u7b2c\u4e00\u4e2a\u5b57\u7b26\u4e32\u5f53\u4e2d printf("%s",d); //\u8f93\u51fa\u62fc\u63a5\u7ed3\u679c\uff1a"\u5b57\u7b26\u4e321\u5b57\u7b26\u4e322" getchar(); return 0; }

是这样的,char *str;你这里定义的str是指针,然后itoa(b,str,10);这里你把b

以十进制存放在str里, 错就错在这里,是因为str没有空间。
解决的办法是给str动态分配至少5个字节(你这里十进制最大1000,4个字符,\0结尾)
以上的大小空间;或者把char *str; 改为 char str[5] = { 0 }; 就可以了。

希望对你有帮助。

1
FILE *pFile=fopen("infile.txt","at+");
改为
FILE *pFile=fopen("infile.txt","w");

2
char *str;
改为
char str[11];

3
for(j=1;j<=20;j++)
改为
for(j=1;j<=40;j++)

再试试

扩展阅读:c语言字符拼接在一起 ... c语言字符长度怎么看 ... c语言字符串拼接不用 ... c++char字符串拼接 ... c需要字符串拼接 ... 将两个字符串连接起来 ... c语言拼接多个字符串 ... c#截取字符串中的一部分 ... 纯c语言中有字符串拼接 ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网