Правый отступ для массива char не работает в c
У меня есть массив данных 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
Актуальный выход
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
2 ответа
Это должно работать как, Как вы инициализируете массив с этими строками? Вы не можете назначить строку, используя одинарные кавычки ''
использовать двойной ""
,
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]
это например. какой у тебя тип?
Что такое 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";