文字列に0詰め – プログラミング – Home

通知
すべてクリア

[解決済] 文字列に0詰め


まきー
 まきー
(@まきー)
ゲスト
結合: 21年前
投稿: 4
Topic starter  

すいません 初心者なものでこんな質問します・・

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

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

【変換イメージ】
101→0000000101


引用未解決
トピックタグ
SunPac
 SunPac
(@SunPac)
ゲスト
結合: 22年前
投稿: 105
 

その前に。
char型の変数に101は入りません。101なら入ります。
文字列と数値の違いなのですが、理解してます?


返信引用
まきー
 まきー
(@まきー)
ゲスト
結合: 21年前
投稿: 4
Topic starter  

はい、ちょっと書き方に語弊があったようです。。すいません。。


返信引用
ダイザ
 ダイザ
(@ダイザ)
ゲスト
結合: 21年前
投稿: 7
 

こんなんでどうでしょうか?

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


返信引用
アイススケーター
 アイススケーター
(@アイススケーター)
ゲスト
結合: 23年前
投稿: 280
 

まきーさんは文字列とおっしゃっているので
文字列としての処理のほうが良いと思います。

#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;

こんなのでどう


返信引用
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 600
 

#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;
}


返信引用
まきー
 まきー
(@まきー)
ゲスト
結合: 21年前
投稿: 4
Topic starter  

SunPacさん、ダイザさん、アイススケーターさん、επιστημηさん
ご回答ありがとうございました。

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


返信引用
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 600
 

'無事解決することが出来ました' だけじゃなくて、
どうしたか/なぜそうしたかを教えていただきたいものです。


返信引用
みち
 みち
(@みち)
ゲスト
結合: 23年前
投稿: 3
 

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


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました