houqing1999 发表于 2023-5-10 22:26:54

s1e29参数与指针动动手0答案部分看不懂

本帖最后由 houqing1999 于 2023-5-10 22:44 编辑

/*这是问题,0. 你应该听说过 itoa 函数,它的作用是将一个整数转换成字符串形式存储。现在要求我们自己来实现一个类似功能的函数 myitoa(int num, char *str),该函数的第一个参数是待转换的整型变量,第二参数传入一个字符指针,用于存放转换后的字符串。*/
#include <stdio.h>

char *myitoa(int num, char *str);

char *myitoa(int num, char *str)
{
      int dec = 1;
      int i = 0;
      int temp;

      if (num < 0)
      {
                str = '-';
                num = -num;
      }

      temp = num;

      while (temp > 9)
      {
                dec *= 10;
                temp /= 10;
      }

      while (dec != 0)//俺想知道这个while语句啥意思,还有之后的,好吧其实压根整个都没怎么懂
      {
                str = num / dec + '0';
                num = num % dec;
                dec /= 10;
      }

      str = '\0';

      return str;
}

int main(void)
{
      char str;

      printf("%s\n", myitoa(520, str));
      printf("%s\n", myitoa(-1234, str));

      return 0;
}

isdkz 发表于 2023-5-10 22:27:40

本帖最后由 isdkz 于 2023-5-10 22:29 编辑

这段代码实现了将整型数转换成字符串的功能。下面是对代码的详细解释:

1. 函数声明

这里声明了一个函数 myitoa ,它接受两个参数,一个是整型数 num ,另一个是字符数组 str 。函数返回值为指向字符的指针。

2. 函数实现

char *myitoa(int num, char *str)
{
    int dec = 1;
    int i = 0;
    int temp;

    if (num < 0)
    {
      str = '-';
      num = -num;
    }

    temp = num;

    while (temp > 9)
    {
      dec *= 10;
      temp /= 10;
    }

    while (dec != 0)
    {
      str = num / dec + '0';
      num = num % dec;
      dec /= 10;
    }

    str = '\0';

    return str;
}


函数首先定义了三个变量 dec 、 i 和 temp ,分别用于记录位数、字符数组下标和整型数的临时变量。如果传入的整型数 num 为负数,则在字符数组 str 中添加一个负号,并将 num 变为正数。接下来,通过一个循环,计算出整型数 num 的位数。然后,再通过另一个循环,将整型数 num 转换成字符串,存储在字符数组 str 中。最后,在字符数组 str 的末尾添加一个空字符 '\0' ,表示字符串的结束。最后,返回指向字符数组 str 的指针。

3. 主函数


int main(void)
{
    char str;

    printf("%s\n", myitoa(520, str));
    printf("%s\n", myitoa(-1234, str));

    return 0;
}

主函数中定义了一个长度为10的字符数组 str ,然后分别调用 myitoa`函数将整型数520和-1234转换成字符串,并打印输出。

歌者文明清理员 发表于 2023-5-10 22:29:40

Threebody1 发表于 2023-5-10 22:30:20

代码放在code里,[ i ]会被吞掉

houqing1999 发表于 2023-5-10 22:43:38

歌者文明清理员 发表于 2023-5-10 22:29


牛的

Threebody1 发表于 2023-5-11 17:16:27

isdkz 发表于 2023-5-10 22:27
这段代码实现了将整型数转换成字符串的功能。下面是对代码的详细解释:

1. 函数声明


回我了啥
页: [1]
查看完整版本: s1e29参数与指针动动手0答案部分看不懂