入力した数字を3桁毎に「,」で区切る方法を知りたいです。
例>
入力 1234567890
出力 1,234,567,890
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答6件
0
ベストアンサー
C
1#include <stdio.h> 2#include <string.h> 3 4#define BUFSIZE 256 5 6int main(void) 7{ 8 char buf[BUFSIZE]; 9 int i = -1; 10 int n; 11 int count = 0; 12 fgets(buf,sizeof(buf),stdin); 13 n = strlen(buf); 14 15 while(i < n){ 16 printf("%c",buf[++i]); 17 if((n - i) % 3 == 2 && count < (n - 2) / 3){ 18 printf(","); 19 count++; 20 } 21 } 22 23 return 0; 24} 25
投稿2018/09/16 10:06

退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
くぐって見たのですが、楽しそうなのが分からなかったので、ちょっと頭の体操。
C
1 int num = -2412; 2 int len, len2, comma; 3 int lastPos; 4 5 char str1[96]; // サイズに特に意味無し (オーバーしないように) 6 7 len = sprintf(str1, "%d", num); 8 if (num < 0) { // 先頭のマイナス符号対策 9 len2 = len + (len - 2) / 3; 10 lastPos = 1; 11 } else { 12 len2 = len + (len - 1) / 3; 13 lastPos = 0; 14 } 15 comma = 4; // 最初は終端の nullコピーのため 16 17 while (len > lastPos) { 18 str1[len2--] = str1[len--]; 19 comma--; 20 if (comma == 0) { 21 comma = 3; 22 str1[len2--] = ','; 23 } 24 } 25 26 printf("%s : (%d)", str1, num);
簡単にできるかと思ったので、結局、変わらない? (未確認)
入力数値は、固定で確認。エラーチェックは特にしてません。
Visual stdio 2017で確認。
投稿2018/09/16 09:36
総合スコア6385
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
数値をカンマ付の文字列に変換するプログラム、ATMの記帳システムで作成しました。
そのままでは問題あるので、日本語変数で登録します。(数年バグの報告はないので問題ないでしょう)
char *DecCma(__int64 数) {
int ix;
__int64 商, 余;
char 列[8][4];
static char 出[64];
if (数 < 0) { 商 = 数 * -1; } else { 商 = 数; }
memset(列, 0x00, sizeof(列));
memset(出, 0x00, sizeof(出));
for (ix = 0; 商 != 0; ix++) { 余 = 商 % 1000; _i64toa(余, 列[ix], 10); 商 = 商 / 1000; }
if (数 < 0) { 出[0] = '-'; }
for (ix--; ix >= 0; ix--) {
if (ix != 0) { sprintf_s(出 + strlen(出),64, "%s,", 列[ix]); }
else { sprintf_s(出 + strlen(出),64, "%s", 列[ix]); }
}
if (出[0] == 0x00) { 出[0] = '0'; }
return(出);
}
投稿2023/08/12 09:39
総合スコア10
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
Cなど不要。そう、シェル芸ならね!
bash
1$ echo 1234567890|rev|sed 's/(...)/\1,/g'|rev|sed 's/^,//' 21,234,567,890
投稿2018/09/16 10:58
総合スコア5739
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/09/17 07:05

あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。