• 全部
  • 问答

sprintf()函数问题

火星机器人life 无人驾驶slam算法工程师  2017-05-31 10:28:59
为什么
char a[100];
int value=9;
sprintf("strlen=%d,strlen(a));
当value=9,strlen(a)的输出值为1
而当value=10,strlen(a)的输出值为2?
...全文
99 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
自信男孩 2017-06-01
引用 3 楼 ktigerhero3 的回复:
题目没说明清楚 原题是这样的 #include<stdio.h> #include <string.h> #include <stdlib.h> int main() { char a[100]; //int value=9; int value=10; sprintf(a,"%d",value); printf("lenght of a=%d",strlen(a)); return 0; } 当value=9,时printf("lenght of a=%d",strlen(a));输出为1,当value=10,printf("lenght of a=%d",strlen(a));输出为2 思考了一下,sprintf(a,"%d",value)这句将int类型转换为用字符串显示的类型。相当于itoi(value,string,10)函数将 int类型转换为字符串。当value=10时,字符串有两个字符,当value=9时字符串有1个字符。
value为9时,sprintf后,字符串数组中存放的字符串就是"9",strlen的值即1,若是value为10,strlen的值自然是2; sprintf可以将数字转成字符串。
回复
题目没说明清楚 原题是这样的 #include<stdio.h> #include <string.h> #include <stdlib.h> int main() { char a[100]; //int value=9; int value=10; sprintf(a,"%d",value); printf("lenght of a=%d",strlen(a)); return 0; } 当value=9,时printf("lenght of a=%d",strlen(a));输出为1,当value=10,printf("lenght of a=%d",strlen(a));输出为2 思考了一下,sprintf(a,"%d",value)这句将int类型转换为用字符串显示的类型。相当于itoi(value,string,10)函数将 int类型转换为字符串。当value=10时,字符串有两个字符,当value=9时字符串有1个字符。
回复
wallesyoyo 2017-05-31
strlen统计字符串长度是统计到\0结束,你的字符数组里面都没放有效数据,输出几都不过分,跟value的值毫无关系。
回复
战在春秋 2017-05-31
题目中没看到哪儿用value。
回复
相关推荐
发帖
C语言
创建于2007-09-28

6.3w+

社区成员

C语言相关问题讨论
申请成为版主
帖子事件
创建了帖子
2017-05-31 10:28
社区公告
暂无公告