【发布时间】:2015-07-03 19:38:00
【问题描述】:
功能是格式化成功返回1,发现错误返回0,如字符串长度大于宽度。我收到错误了吗?怎么了?我也不认为我说得对……
#include <stdio.h>
int main()
{
int dummy, value = 0;
formatString(value);
scanf_s("%d",&dummy);
return 0;
}
int formatString (char *in,
char *out,
int width)
{
//Local Declarations
int spaces;
char *start;
char *walker;
int value;
spaces = (width – 1) – strlen(in);
if (spaces < 0)
{
value = 0;
}
else
{
start = out + (spaces / 2);
for (walker = out; walker < start; walker++)
*walker = ' ';
strcpy (start, in);
for (walker = out + strlen(out);
walker < out + width – 2;
walker++)
*walker = ' ';
*walker = ‘\0’;
}
return value;
}
【问题讨论】:
-
您的代码根本无法编译。
formatString被错误地调用。你期待什么输出? -1,直到提供此信息。顺便说一句,不应该期望 SO 让你的代码编译。 -
你不能单独使用
printf吗?