c - 将负整数转换为字符串时如何处理?

标签 c string integer logic

我需要将整数转换为字符串,无论是负数还是正数。 到目前为止,我可以使用以下代码将正整数转换为字符串。 但不是消极的。我如何正确处理它们以将它们转换为字符串。 这是我正在使用的代码。

谢谢

拉贾特!

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

最佳答案

在执行其他操作之前,请查看 n 是否为负数。如果是,则以符号 - 开始输出(确保 len 也比其他情况下多 1,并且字符串化在一个字符后开始), n 积极,并像之前一样继续。

关于c - 将负整数转换为字符串时如何处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51872086/

相关文章:

java - 使用 native 库(仅限 C,无 C++),并且未找到实现

regex - 使用 strsplit 获取 r 中的最后一个字符

c - char s[] 和 char *s 有什么区别?

python - 使用 'str' 时,我的按位程序出现 'int' 和 'input' TypeError

java - double 和 int 的算法速度?

c - 在 C 中填充二维数组两次,首先在随机位置填充一个数字,然后用随机数字填充其余部分

c - 基础 C 编程 printf tricky

c - 了解类型转换

java - 使用前导空格打印来自扫描仪的字符串输入

java - 堆栈/堆上的整数和整数数组存储