В C строка - это массив char
, оканчивающийся символом со значением 0.
Независимо от того, является ли char
типом со знаком или без знака, язык не определяется,Вы должны быть явными и использовать unsigned char
или signed char
, если вам действительно важно.
Непонятно, что вы подразумеваете под "представлением" массива без знака в виде строки.Достаточно просто отбросить знак, если вы хотите сделать что-то вроде:
const unsigned char abc[] = { 65, 66,67, 0 }; // ASCII values for 'A', 'B', 'C'.
printf("The English alphabet starts out with '%s'\n", (const char *) abc);
Это сработает, к printf()
разницы нет, она увидит указатель на массивсимволы и интерпретировать их как строку.
Конечно, если вы работаете в системе, которая не использует ASCII, может произойти сбой в тех случаях, когда это не сработает.Опять же, ваш вопрос не очень ясен.