【问题标题】:Add leading zeros to a string value in C将前导零添加到 C 中的字符串值
【发布时间】:2018-11-09 13:47:57
【问题描述】:

要求给定的字符串 char input_str[5] = "Hello"; 必须用前导字符 = 0 填充。因此结果将具有固定长度的10 个字符:out_put == "00000Hello"

知道如何在 C 中这样做吗?

【问题讨论】:

  • 填充在哪里?在记忆中?打印时?在同一个字符串中?在另一个?
  • 使用 printf 函数系列,您可以 0 填充字符串和整数。阅读手册页。
  • 您可以使用 0 填充,但 gcc 警告它会导致 s 的未定义行为。
  • String Padding in C的可能重复

标签: c string zero-padding


【解决方案1】:

这是一个例子

int targetStrLen = 10;           // Target output length  
const char *myString="Hello";   // String for output 
const char *padding="0000000000000000000000000000000000000000000000000000000000000";

int padLen = targetStrLen - strlen(myString); // Calc Padding length
if(padLen < 0) padLen = 0;    // Avoid negative length

printf("[%*.*s%s]", padLen, padLen, padding, myString);  // LEFT Padding 
printf("[%s%*.*s]", myString, padLen, padLen, padding);  // RIGHT Padding 

如果您有疑问,请参阅此答案 https://stackoverflow.com/a/9741091/3284537 我在哪里提取代码

【讨论】:

  • 这应该是评论或可能是重复投票。
  • 请不要发布仅链接的答案。
  • 可能你是对的,但同时用户得到了他的答案
  • 用户应该自己尝试。没有表现出任何努力。用勺子喂那些问“为我写代码”的人是没有帮助的。
  • 我会这样做,但在我看来,复制粘贴代码比粘贴链接更糟糕
猜你喜欢
  • 1970-01-01
  • 2019-08-17
  • 2017-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-13
  • 2013-03-29
相关资源
最近更新 更多