فك base64 في - غير صحيح طول السلسلة
سؤال
وأنا أحاول فك سلسلة المشفرة base64 في مع بينسل. ومع ذلك، فإنه يعمل سوى 4 مرات من أصل 5.
ويجب أن تكون سلسلة فك الشفرة دائما 64 حرف طويل. BIO_read () دوما بإرجاع 64. ومع ذلك، عاد بعض الأحيان عازلة أقصر من 64!
وأي أفكار ما هو الخطأ؟ كيف يمكنني دائما الحصول على سلسلة الصحيحة؟
المحلول
هل تستخدم شارع [ن] CPY؟ لا يمكنك! يمكن أن تحتوي على بيانات base64 ترميز أحرف فارغة، التي C تفسير وظائف معالجة سلسلة ك نهاية السلسلة.
استخدم memcpy بدلا من CPY شارع [ن]، memcmp بدلا من strcmp وغيرها وهذه المهام تتطلب منك أن تعرف حجم البيانات الخاصة بك، ولكن أعتقد أنكم <م> لا م> يعرفون ذلك.
وأيضا إذا كنت غير واثق جدا حول سلاسل الطراز C ومن هذا القبيل، هناك الكثير من المعلومات التي يمكن العثور عليها حول الموضوع هنا.
لا تنتمي إلى StackOverflow