Разобрать символ из XML на языке C? - PullRequest
0 голосов
/ 04 октября 2009

Я передаю в качестве ввода в мою программу: "<param value=s/>"

Я использую этот код:

char character[1];
sscanf(data, "<param value=%c/>", &character);
printf("%c", character);

Однако вывод выглядит как «s />», а не как «s» char что здесь не так?

Ответы [ 2 ]

0 голосов
/ 04 октября 2009

char character[1] можно заменить на char character, исправляя при этом вашу ошибку.

Если вы хотите сохранить character в качестве массива, вы должны использовать &character[0] или character в качестве sscanf аргумента и character[0] в качестве printf аргумента.

0 голосов
/ 04 октября 2009

Ваш код правильный, но вам нужно вывести character[0]:

printf("%c", character[0]);

Вы должны отбросить оператор адреса перед character, поскольку sscanf() ожидает аргумент типа char *, а не char (*)[1]:

sscanf(data, "<param value=%c/>", character);
...