此代码需要获取一个int数字并将其转换为表示该数字的char数组:
例如:
324号
转换为:
比如:

char newstr [6] = {'3','2','4','\0','\0','\0'};

我认为“\0”是空的,对吧?
我的代码怎么了?
另外,我如何将其更改为一个获取int数并返回表示它的char数组的函数?
#include <string.h>
#include <stdlib.h>
#include <stdio.h>

void main ()
 {
   int value = 324;
   char str [6];
   char newstr [6];
   int pointer, i = 0;

   for(i=0; value>0; i++)
     {
        str[i] = value%10 + '0';
        value /=10;
     }

        str[i] = '\0';

   for(i=5; i>-1; i--)
     {
       if(str[i]!='\0')
        {
         newstr[pointer] = str[i];
         pointer++;
        }
     }

   for (i = 0; i < 6; i++)
     {
        printf("%d  %c\n", i, newstr[i] );
     }
    printf ("shalom");
 }

最佳答案

一个简单的方法应该是调用sprintf()

char newstr[6] = {0};
sprintf(newstr, "%d", value);

在您现有的代码中,str看起来是LILE {'4', '2', '3', '\0', SomethingRandom, SomethingRandom}。将其反转并分配给newstr会使其{SomethingRandom, SomethingRandom, '\0', '3', '2', '4'},这绝对不是您想要的。实际上,当newstr时,您不会指定str[i] == '\0',这意味着newstr[2] == SomethingRandom

10-08 08:48