在用户输入的ID号之前放置“ 0”

时间:2019-08-27 14:41:49

标签: c

我是一名新的C程序员。 我被要求输入一个ID号作为输入,如果ID长度<9,则需要在该数字前加上“ 0”。 例: 输入:12345 输出:000012345

我可以使用以下库:stdio,stdlib,字符串,数学和时间。

2 个答案:

答案 0 :(得分:0)

您可以使用printf

#include <stdio.h>

int main () {
   printf("%09d\n", 12345);
   return(0);
}

Documentation

答案 1 :(得分:0)

这里有一个简单的解决方案。

但是,如果您想要一个困难的解决方案,在其中杂乱地处理字符串等,您可以执行以下操作:

  • 将您的id转换为字符串(如果还不是一个,但是argv默认情况下应为字符串)

  • 通过执行9-idString Length

  • 来计算所需的零个数
  • 创建一个“缓冲区”字符串变量

  • for从0到9-idString的循环,并使用strcat在缓冲区字符串中添加“ 0”。

  • 使用strcat将ID添加到缓冲区字符串中

示例代码如下:

int id = 12345;

char idstring[10];
char buffer[10];

sprintf(idstring, "%d", id);

int missingZerosCount = 9 - strlen(idstring);

strcpy(buffer, "");

while (missingZerosCount > 0) {
    strcat(buffer, "0");
    missingZerosCount--;
}
strcat(buffer, idstring);

argv变体:

char idstring[10];
char buffer[10];

sprintf(idstring, "%s", argv[1]);

int missingZerosCount = 9 - strlen(idstring);

strcpy(buffer, "");

while (missingZerosCount > 0) {
    strcat(buffer, "0");
    missingZerosCount--;
}
strcat(buffer, idstring);