【发布时间】:2017-06-17 01:28:06
【问题描述】:
TASK: // 目标 - 开始记录结果的参数 目标应该是一个“源”,以“fill_char”为补充,长度为“cnt”。如果 cnt 小于源的长度,它就等于目标源。 // 现在正朝着正确的方向前进,必须改变一些东西,但我不确定是什么以及如何改变。你能给我建议吗。如果您有不同的决定,请与我分享。谢谢 :)))!
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <batch_util.h>
int lpad(char* target, char* source, char fill_char, int cnt)
{
int i;
int source_size = strlen(source);
for (i = 0; i < source_size; i++)
target[i] = source[i];
for (i = source_size; i < cnt; i++)
target[i] = fill_char;
target[i] = '\0';
return 0;
}
int main(int argc, char* argv[])
{
char source[128];
char target[128];
char fill_char;
int cnt;
scanf("%s\n", &source);
scanf("%c\n", &fill_char);
scanf("%d\n", &cnt);
lpad(target, source, fill_char, cnt);
printf("%s\n", target);
return 0;
}
【问题讨论】:
-
你能 a) 正确格式化代码(缺少缩进,随机反引号 /
enter code here) b) 修复它以便编译? (lpad 函数没有右括号)。 -
看起来很可疑,这应该是 C,而不是 C++?
-
是的,但是 source、cnt 和 char 必须由用户输入我的程序运行正常,但正在向右移动源等等cnt 会看起来像这只猴子**********,答案一定是**********猴子..