首页 > 解决方案 > 将它们转换为字符串时如何处理负整数?

问题描述

我需要将整数转换为字符串,无论是负数还是正数。到目前为止,我能够使用以下代码将正整数转换为字符串。但不是负面的。我怎样才能正确处理它们以将它们转换为字符串。这是我正在使用的代码。

谢谢

拉贾特!

 /*
  * 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';
   }

标签: cstringintegerlogic

解决方案


在做任何其他事情之前,看看是否n为负。如果是,则以符号开始输出-(确保len也比其他情况多一个,并且您的字符串化稍后开始一个字符),n确定,并像以前一样继续。


推荐阅读