1

文字列を「ascii」から「utf-8」に変換しようとしています。「lencoded_str」関数はポインター char を受け取り、別のポインター char を返します。入力ポインターの文字サイズは不明で、「lencoded_str」関数が呼び出されるたびに変化します。私の問題は、「lencoded_str」関数が常に何も返さないことです。

どんな助けでも大歓迎です。

これはほんの一例です

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <iconv.h>

char *lencoded_str(char *in_str){

  iconv_t iconv_obj = iconv_open("utf-8","ascii");
  char *out_str = calloc(strlen(in_str) * 2, sizeof(char));
  char *out_str_start = out_str;

  size_t in_str_bytes_left    = strlen(in_str);  
  size_t out_str_bytes_left   = strlen(in_str) * 2;  
  int iconv_return = iconv(iconv_obj, &in_str,  &in_str_bytes_left, &out_str, &out_str_bytes_left);
  iconv_close(iconv_obj);

  return out_str;
}
int main( ){ 
  printf("out: %s\n", lencoded_str("123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"));
  printf("out: %s\n", lencoded_str("123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"));
  printf("out: %s\n", lencoded_str("123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"));
}
4

1 に答える 1