您的位置:首页 > 其它

华为2013校园招聘上机笔试题-整数转换成字符串

2012-09-18 16:30 453 查看
2013华为校园招聘机试题9月10日题

题目来源:http://blog.csdn.net/caollcool/article/category/1234841

解答参考来源:http://www.360doc.com/content/11/1103/19/1317564_161441610.shtml

1:把整数转换成字符串 void ConvertIntToStr(int nVal, char* pStr);

#include<stdio.h>

void ConvertIntToStr(int nVal, char* pStr)
{
char buf[100];
int temp,i=0,j=0;

if (nVal == 0)
{
*pStr='0';
*(pStr+1)='\0';
return;
}
temp = (nVal > 0)?(nVal):(-nVal);
//printf("temp:%d\n",temp);
while(temp)
{
buf[i]=temp%10+'0';
temp/=10;
i++;
}
//printf("1  here i %d\n",i);
if(nVal<0)
{
buf[i]='-';
i++;
}
//printf("2  here i %d\n",i);
buf[i]='\0';
pStr[i]='\0';
while(buf[j]!='\0')
{
i--;
pStr[i]=buf[j];
j++;
}
}

int main()
{
int a;
char str[100];
printf("input a number\n");
scanf("%d",&a);

ConvertIntToStr(a,str);
printf(str);

return 0;
}


注意int类的限制。

函数思路:

首先判断是否为0,然后判断给定的正负,然后将给定数的绝对值以取余的方式逆序保存在buf中,如果给定的是负数,则在buf末尾添加'-'号,并在buf尾部添加'\0'。最后将buf中的字符逆序保存到目标字符串中。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: