تحليل شار من XML في لغة C؟
سؤال
أنا أتخلص كدخلات إلى برنامجي: "<param value=s/>"
يمكنني استخدام هذا الرمز:
char character[1];
sscanf(data, "<param value=%c/>", &character);
printf("%c", character);
ومع ذلك، يبدو أن الإخراج "S />" بدلا من Char فقط "S". ما هو الخطأ هنا؟
المحلول
الرمز الخاص بك هو الصحيح، ولكن تحتاج إلى الإخراج character[0]
:
printf("%c", character[0]);
يجب عليك إسقاط مشغل العناوين أمام character
, ، كما لو sscanf()
تتوقع حجة النوع char *
و لا char (*)[1]
:
sscanf(data, "<param value=%c/>", character);
نصائح أخرى
char character[1]
يمكن استبدالها char character
, ، إصلاح علة الخاص بك في نفس الوقت.
إذا كنت ترغب في الاحتفاظ character
كصفيف، يجب عليك استخدام &character[0]
أو character
كما sscanf
حجة، و character[0]
كما printf
جدال.
لا تنتمي إلى StackOverflow