我有char数组;我正在将它写入缓冲区以便以单行显示它们。
char buffer[150] ;
sprintf(buffer, "%-17s%-25s%-20s%-17s%s" , array[0],array[1], array[2],array[3],array[4]);
//code uses buffer to add values to interface
简单地说我想要将它们对齐。后来我使用这些值在界面中显示。
我在这里做错了什么?
注意:数组的示例值
array[0] = '799234' or '799923'-1'
array[1] = '28/02/2014 08:03'
array[2] = 'CCC' or 'CC'
array[3] = '28/02/2014 18:03'
array[4] = '799234' or '79921'
缓冲区的预期结果;我想添加空格以获得每个数组后的固定长度
799234 28/02/2014 08:03 CCC 28/02/2014 18:03 799234
799923-1 28/02/2014 08:03 CC 28/02/2014 18:03 79921
79921 28/02/2014 08:03 CCC 28/02/2014 18:03 799234
Actaul输出
799234 28/02/2014 08:03 CCC 28/02/2014 18:03 799234
799923-1 28/02/2014 08:03 CCC 28/02/2014 18:03 79921
79921 28/02/2014 08:03 CCC 28/02/2014 18:03 799234
答案 0 :(得分:0)
它应该像,如何用这些字符串初始化数组?您无法使用单引号''
使用双""
来分配字符串。
int main ()
{
char *array[150];
char buffer[150];
array[0] = "799234";
array[1] = "28/02/2014 08:03";
array[2] = "CCC";
array[3] = "28/02/2014 18:03";
array[4] = "799234";
sprintf(buffer, "%-17s%-25s%-20s%-17s%s" , array[0],array[1], array[2],array[3],array[4]);
printf("%s\n", buffer);
array[0] = "799923-1";
array[1] = "28/02/2014 08:03";
array[2] = "CCC";
array[3] = "28/02/2014 18:03";
array[4] = "79921";
sprintf(buffer, "%-17s%-25s%-20s%-17s%s" , array[0],array[1], array[2],array[3],array[4]);
printf("%s\n", buffer);
array[0] = "79921";
array[1] = "28/02/2014 08:03";
array[2] = "CCC";
array[3] = "28/02/2014 18:03";
array[4] = "799234";
sprintf(buffer, "%-17s%-25s%-20s%-17s%s" , array[0],array[1], array[2],array[3],array[4]);
printf("%s\n", buffer);
return 0;
}
输出:
799234 28/02/2014 08:03 CCC 28/02/2014 18:03 799234
799923-1 28/02/2014 08:03 CCC 28/02/2014 18:03 79921
79921 28/02/2014 08:03 CCC 28/02/2014 18:03 799234
此处char *array[150]
也是例如。你的类型是什么?
答案 1 :(得分:0)
什么是array
? array[0]
是array
的第一个元素。我会写:
char arr0[] = "799234";
char arr1[] = "28/02/2014 08:03";
char arr2[] = "CCC";
char arr3[] = "28/02/2014 18:03";
char arr4[] = "799234";