鱼C论坛

 找回密码
 立即注册
查看: 1093|回复: 6

[已解决]为啥这样没输出呢

[复制链接]
发表于 2020-2-13 10:58:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
0. 你应该听说过 itoa 函数(函数文档 -> 传送门),它的作用是将一个整数转换成字符串形式存储。现在要求我们自己来实现一个类似功能的函数 myitoa(int num, char *str),该函数的第一个参数是待转换的整型变量,第二参数传入一个字符指针,用于存放转换后的字符串。下面是我的^__^,先不考虑负的
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <math.h>
  5. //1234
  6. char * myitoa(int num,char *str)
  7. {
  8.     int i = 0;
  9.     while(pow(10,i)<num)
  10.     {
  11.         i++;
  12.     }
  13.     int a = i;
  14.     for(int j = 0;j<i;j++)
  15.     {
  16.         int t = num / pow(10,a-1);
  17.         num = num % (int)pow((int)10,a-1);
  18.         *(str+j) = t+48;
  19.         a--;
  20.         
  21.     }
  22.     return str;
  23. }

  24. int main(void)
  25. {
  26.     char str[10];

  27.     printf("%s\n",myitoa(123456,str));
  28.     printf("%d\n",sizeof(str));//无论数字如何变,这个等于10,不变,不知道为啥

  29.     system("pause");
  30.     return 0;

  31. }
复制代码

最佳答案
2020-2-13 11:56:49
哈哈又是我。还记得上一篇吗?先区分两个概念,sizeof,strlen看一看小甲鱼是怎么说的?strlen 函数文档


函数概要:

strlen 函数用于返回指定字符串的长度。

C 语言字符串的长度取决于结束符('\0')的位置。

一个字符串的长度指的是从起始位置到结束符的字符个数(不包含结束符本身)。

初学者很容易混淆字符串的长度和字符串数组的大小,例如:
char mystr[100] = "I love FishC.com!";

上边代码定义一个可以存放 100 个字符的数组,但 mystr 字符串只被初始化为包含 17 个字符的长度。因此,sizeof(mystr) 的结果是 100,而 strlen(mystr) 的结果则是 17。
所以你应该懂了吧,要多用小甲鱼的函数快查,真的很好用。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-2-13 11:56:49 From FishC Mobile | 显示全部楼层    本楼为最佳答案   
哈哈又是我。还记得上一篇吗?先区分两个概念,sizeof,strlen看一看小甲鱼是怎么说的?strlen 函数文档


函数概要:

strlen 函数用于返回指定字符串的长度。

C 语言字符串的长度取决于结束符('\0')的位置。

一个字符串的长度指的是从起始位置到结束符的字符个数(不包含结束符本身)。

初学者很容易混淆字符串的长度和字符串数组的大小,例如:
char mystr[100] = "I love FishC.com!";

上边代码定义一个可以存放 100 个字符的数组,但 mystr 字符串只被初始化为包含 17 个字符的长度。因此,sizeof(mystr) 的结果是 100,而 strlen(mystr) 的结果则是 17。
所以你应该懂了吧,要多用小甲鱼的函数快查,真的很好用。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-13 11:59:31 | 显示全部楼层
本帖最后由 最后的魁拔 于 2020-2-13 12:01 编辑
召唤风云 发表于 2020-2-13 11:56
哈哈又是我。还记得上一篇吗?先区分两个概念,sizeof,strlen看一看小甲鱼是怎么说的?strlen 函数文档


...


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-13 12:04:40 From FishC Mobile | 显示全部楼层
上次找函数的时候刚好看到了而已,运气运气。那么问题来了,我竟然看不懂你这个函数什么意思,把10进制数转化为10进制数,真的有用吗?原函数好像是可以转化为其他进制的吧。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-13 12:06:29 | 显示全部楼层
召唤风云 发表于 2020-2-13 12:04
上次找函数的时候刚好看到了而已,运气运气。那么问题来了,我竟然看不懂你这个函数什么意思,把10进制数转 ...

兄弟你这个啥时候开始学c语言了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-13 12:07:15 | 显示全部楼层
召唤风云 发表于 2020-2-13 12:04
上次找函数的时候刚好看到了而已,运气运气。那么问题来了,我竟然看不懂你这个函数什么意思,把10进制数转 ...

我这个函数是把整数转成字符串
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-13 13:18:34 From FishC Mobile | 显示全部楼层
最后的魁拔 发表于 2020-2-13 12:06
兄弟你这个啥时候开始学c语言了

四五个月前吧,我的第1本书是数据结构与算法分析,什么语法都不会,但我竟然大概看懂了前面几章。各种符号不认识就瞎猜。后来学了之后发现猜的都挺对的。看代码,我就是看他是用来干什么的,再结合作者的分析,再想我会怎么做。勉勉强强能理解。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-11 15:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表