У меня есть функция, написанная на C, которая возвращает либо указатель на значение, либо null;Печать null, если символ равен нулю
char* function (char const *source char const *chars)
{
int size();
int sizeSource = size(source);
int charSource = size(chars);
for (int i = 0; i < sizeSource; i++)
{
for (int j = 0; j < charSource; j++)
{
if (*(source + i) == *(chars + j))
{
return *(source + i);
}
}
}
return "NULL";
}
Функция работает просто отлично, и я называю это таким образом:
printf("%c\n", function("ABCDEFG", "HJI"));
printf("%c\n", function("ABCDEFG", "ABC"));
Так просто объяснить здесь, первый оператор печати возвращает нуль, так как HJI не в ABC, а вторая возвращает указатель на A, который является прекрасным. Мой вопрос в том, что когда я в настоящее время запускаю его, первый оператор печати просто ничего не печатает, есть ли способ, которым я могу заставить его печатать «NULL», если он возвращается NULL? Я бы предпочел не проверять каждое возвращаемое значение для NULL, прежде чем печатать его.
Редактировать: Я хотел бы сохранить его в соответствии между успехами и случаями отказа. Если я изменю% c на% s в случаях успеха, которые возвращают указатель, я получаю ошибку сегментации. Я также хотел бы вернуть что-то, что не выводит вывод в функцию.
'return" NULL "'? – 0x499602D2
'% c' но передать указатель? – HuStmpHrrr
'char * function (char const * a, char const * b)'/'if (somethings are true)'/'* (указатель на что-то)' Пожалуйста, отправьте реальный код в будущем. – Qix