• ベストアンサー

VC++ での表記

("\000test\@gmail.com\000abcde12345") ¥のところがバックスラッシュになっている 上の文字列を、 VC++ で、書いたらどうなりますか? Gメールのサーバーに、SMTP-AUTH ではいるときのユーザー名とパスワードです。 base64 変換する前の文字列です。 他のサンプルでは NULL で区切っていました。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.1

>上の文字列を、 >VC++ >で、書いたらどうなりますか? そのままでいいはずですが。 日本語のフォントの円記号の文字コード0x5cは 英語圏のフォントだとバックスラッシュが割り当てられているというだけですから。 >他のサンプルでは NULL で区切っていました。 char に NULL(ポインタ) を使ってるって事でしょうか。 もしそうならあまりよいサンプルでないかも。 char buf[256]; // コンパイル時に警告やエラーにならなくても以下の様なNULLの使い方は間違ってます。 buf[0] = NULL; memset(buf, NULL, sizeof(buf));

uyama33
質問者

お礼

ありがとうございました。 次のようにしたら、変換できました。 元のままでは変換できませんでした。 char out_data[2048]; char b64in[256]; char b64out[512];int np; np=0; b64in[np] = NULL; np = np+1; strcpy((char *)(b64in+np),"test\@gmail.com"); np = np + strlen("test\@gmail.com"); b64in[np] = NULL; np = np+1; strcpy((char *)(b64in+np), "abcde12345"); np = np+strlen("abcde12345"); b64in[np]=NULL; //base64_encode(char *in, char *endin, char *out) base64_encode(b64in, (b64in+np), (char *)b64out); sprintf_s( out_data, "%s\r\n",b64out);

その他の回答 (1)

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.2
uyama33
質問者

お礼

ありがとうございました。 次のようにしました。 char out_data[2048]; char b64in[256]; char b64out[512];int np; np=0; b64in[np] = NULL; np = np+1; strcpy((char *)(b64in+np),"test\@gmail.com"); np = np + strlen("test\@gmail.com"); b64in[np] = NULL; np = np+1; strcpy((char *)(b64in+np), "abcde12345"); np = np+strlen("abcde12345"); b64in[np]=NULL; //base64_encode(char *in, char *endin, char *out) base64_encode(b64in, (b64in+np), (char *)b64out); sprintf_s( out_data, "%s\r\n",b64out);

関連するQ&A