我只是想id问这个问题,看它是否真的可以完成。
如果我想存储像“00000000000001”这样的数字,最好的方法是什么? 请记住,这也必须定期增加。
我想要有一种方法可以使用整数来执行此操作,或者我必须转换为沿线某处的char数组。这样会很好,但尝试增加一个字符串会很痛苦。
答案 0 :(得分:8)
我会将它存储为整数,并且只在需要生成输出时才转换为带有前导零的格式化版本,例如使用printf
,sprintf
等。
这比存储字符串并尝试对字符串执行算术要容易得多。尤其是因为您对字符串有额外的格式要求。
如果出于某种原因,存储整数很难,因为您的主数据会这样做。
答案 1 :(得分:7)
您只需使用适当的类型(例如unsigned int
)存储数字,这样就可以轻松执行“递增1”等操作 - 只需要担心显示数字时前导零。
sprintf
实际上可以为您做到这一点:
unsigned int i = 1;
char buffer[64];
sprintf( buf, "%014u", i );
这会打印'00000000000001'。
答案 2 :(得分:1)
您可以将其存储在整数变量中(前提是存在一个足以满足您需求的整数类型)。打印时,只需将数字格式化为具有正确的前导零数。
答案 3 :(得分:0)
#include <stdlib.h> // for itoa() call
#include <stdio.h> // for printf() call
int main() {
int num = 123;
char buf[5];
// convert 123 to string [buf]
itoa(num, buf, 10);
// print our string
printf("%s\n", buf);
return 0;
}