文字列に0詰め

[戻る]
まきー 2003/11/18(火) 20:01:11
すいません 初心者なものでこんな質問します・・

【例】
char型の変数に"101"という文字列を入れたとします。

これに、左側を0詰めして、10桁に変換する方法を教えてください。
お願いいたします。

【変換イメージ】
"101"→"0000000101"

SunPac 2003/11/18(火) 20:23:57
その前に。
char型の変数に"101"は入りません。101なら入ります。
文字列と数値の違いなのですが、理解してます?

まきー 2003/11/18(火) 20:28:10
はい、ちょっと書き方に語弊があったようです。。すいません。。

ダイザ 2003/11/18(火) 20:38:10
こんなんでどうでしょうか?

char    b1[12]="101" ;
int    i = atoi(b1) ; //#include <stdlib> が必要
sprintf(b1,"%010d",i) ;

アイススケーター 2003/11/19(水) 08:15:25
まきーさんは文字列とおっしゃっているので
文字列としての処理のほうが良いと思います。

#include <string.h>  // 必要

char    src[12]="101" ;
char    dst[12];
int    i;

i = strlen(src) ;
if( i > 10) return;

memset( dst, '0', sizeof(dst) );
memcpy( &dst[10-i], src, i);
dst[10] = NULL;

こんなのでどう

επιστημη [E-Mail] [HomePage] 2003/11/19(水) 08:46:36
#include <iostream>
#include <iomanip>
#include <sstream>
#include <string>

int main() {
  std::ostringstream stream;
  stream << std::setfill('0') // '0'で埋めた 
         << std::setw(10)     //  10桁で
         << "101";            //  "101" を書けば
  std::string result = stream.str(); // できあがり
  std::cout << '[' << result << ']' << std::endl;
  return 0;
}

まきー 2003/11/19(水) 10:05:48
[[解決]]
SunPacさん、ダイザさん、アイススケーターさん、επιστημηさん
ご回答ありがとうございました。

無事解決することが出来ました^^。

επιστημη [E-Mail] [HomePage] 2003/11/19(水) 11:14:00
'無事解決することが出来ました' だけじゃなくて、
どうしたか/なぜそうしたかを教えていただきたいものです。

みち 2003/11/22(土) 23:19:31
>'無事解決することが出来ました' だけじゃなくて、
>どうしたか/なぜそうしたかを教えていただきたいものです。
読む価値のないレスをするだけじゃなくて、
他人との会話における言葉遣いを最低限 嗜んで頂きたいものです。

古いスレッドには追加発言できません。