【发布时间】:2018-08-16 07:48:34
【问题描述】:
我需要将整数转换为字符串,无论是负数还是正数。 到目前为止,我能够使用以下代码将正整数转换为字符串。 但不是负面的。我怎样才能正确处理它们以将它们转换为字符串。 这是我使用的代码。
谢谢
拉贾特!
/*
* C Program which Converts an Integer to String & vice-versa
*/
#include <stdio.h>
#include <string.h>
#include <math.h>
void tostring(char [], int);
int main()
{
char str[10];
int num, result;
printf("Enter a number: ");
scanf("%d", &num);
tostring(str, num);
printf("Number converted to string: %s\n", str);
return 0;
}
void tostring(char str[], int num)
{
int i, rem, len = 0, n;
if(num<0)
{
n=(-1)*(num);
}
else
{
n=num;
}
while (n != 0)
{
len++;
n /= 10;
}
for (i = 0; i < len; i++)
{
rem = num % 10;
num = num / 10;
str[len - (i + 1)] = rem + '0';
}
str[len] = '\0';
}
【问题讨论】:
-
您是否出于练习原因故意避开
itoa和sprintf?因为他们几乎用一行替换了你所有的代码...... -
是的@Amadan 我故意避免它。我想编写自己的代码来执行此操作。 :) 谢谢!
-
“我想编写自己的代码” - 那么您自己的代码在哪里,或者至少您自己对如何转换负值的想法?编程的一个重要部分是在实现之前先思考一下。这需要小学数学基础知识。