
No.2ベストアンサー
- 回答日時:
Cmachineという事はC言語を使うという事ですね? 言語や環境を書いておかないと適切な回答は得られませんよ。
-------------------------------------------------
#include <stdio.h>
#include <string.h>
#define ARRAY_SIZE 128
int main()
{
char input[ARRAY_SIZE];
char output[ARRAY_SIZE];
int len;
int i = 0;
int j = 0;
memset(input, 0, ARRAY_SIZE);
memset(output, 0, ARRAY_SIZE);
scanf("%s", input);
len = strlen(input);
while (i < len) {
output[j] = input[i];
i++;
j++;
if ( (len - i) % 3 == 0 ) {
output[j] = ',';
j++;
}
}
if (output[j - 1] == ',') {
output[j - 1] = '\0';
}
printf("output = %s\n", output);
return 0;
}
-------------------------------------------------
エラーチェックが甘いけど、入力が正しければ、正常に動作すると思います。全角スペース入りなので、削除してからコンパイルしてください。
この回答への補足
書き込みありがとうございます。
すいません、言語はCで、コンパイラはCmachineです。
gimmikさんのプログラムできちんと動きましたが、#define ARRAY_SIZE 128 というのがまだ教わってないのでよくわかりません。
#define を使わずに実行する方法は無いでしょうか?
質問ばかりで申し訳ありません。
No.3
- 回答日時:
はじめまして。
>、#define ARRAY_SIZE 128 というのがまだ教わってないのでよくわかりません。
ARRAY_SIZEは128です。って事です。宣言文でこれ以降ARRAY_SIZEが出てきたら128と読み替えてね。
>#define を使わずに実行する方法は無いでしょうか?
ARRAY_SIZEと記述されている部分を全て128に変更してください。#defineの行を削除。
ありがとうございます。
教えていただいたソースを参考に、自分なりに考えてみたら、できました!!
みなさん、どうもありがとうございました。
No.1
- 回答日時:
文字列として処理しても良ければ、、、
#include <stdio.h>
#include <string.h>
int main(int argc, char* argv[])
{
char chrInput[128];
scanf( "%s", &chrInput );
int nLen = strlen( chrInput );
int nParts = nLen / 3;
int nOdd = nLen % 3;
char chrOutput[128];
chrOutput[0] = '\0';
if( nOdd )
{
strncat( chrOutput, chrInput, nOdd );
}
for( int i=0; i<nParts; i++ )
{
strcat( chrOutput, "," );
strncat( chrOutput, &chrInput[nOdd+i*3], 3 );
}
printf( "Result = %s", chrOutput );return 0;
}
この回答への補足
書きこみありがとうございます!
初心者の研修なので、コンパイラはCmachineを使うことを義務付けられています。
Cマシーンでは9行目、int nLen = strlen(chrInput);
の所でエラーが出てしまいます…。
どうしたらいいでしょう?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAで出力したCSVファイルの先頭にカンマを挿入したい 5 2022/10/14 12:20
- Visual Basic(VBA) 【VBA】特定の文字で改行(次の行)に行きたい。 3 2022/04/11 17:20
- Excel(エクセル) Excelのtextboxへの入力で小数点以下に0が続く場合でも正しく表示したい 3 2022/04/11 13:53
- その他(プログラミング・Web制作) プログラミング pythonの問題について 2 2022/04/19 00:41
- Excel(エクセル) CSVファイルがカンマ区切りにならない。対処法を教えていただきたいです。 仕事でSMS一斉送信ができ 2 2022/07/01 21:24
- Java コンソールから所属財産を入力(単位:万円 1000~100000以内でIntegerに変換できない場 2 2022/05/31 21:32
- Java javaのCSVデータ読込についてです 6 2022/07/02 10:58
- Visual Basic(VBA) 【VBA】複数行あるカンマ区切りのデータを全て縦に一列に並べたい 5 2022/04/13 17:03
- Visual Basic(VBA) VBAでエクセルをtxtに変換するとエクセルでカンマを含む文字数字がtxtでは「""」付にならないよ 1 2022/08/27 12:17
- Excel(エクセル) 数字にカンマを入れる方法 2 2022/04/12 11:52
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
複数桁10進数の*桁目だけを抽出...
-
「指定されたキャストは有効で...
-
C言語での引数の省略方法
-
#define _CRT_SECURE_NO_WARNIN...
-
if と配列の組み合わせ
-
(int *)の意味
-
ラップ関数とはどんなものですか?
-
行列の列の絶対値の総和の最大...
-
C言語 エラーの原因がわからな...
-
16進数を入力とするatoi関数...
-
C言語についてです。
-
「{ } で囲むだけ」は正しい?
-
課題でつまってます・・・
-
【Visual Studio】プロジェクト...
-
各桁の和を返す関数
-
C言語です。
-
構造体の勉強中です 合計点の高...
-
C言語で行列の積を計算できるよ...
-
入力された数字を大きい順に並...
-
memsetについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「指定されたキャストは有効で...
-
C言語での引数の省略方法
-
#define _CRT_SECURE_NO_WARNIN...
-
複数桁10進数の*桁目だけを抽出...
-
ラップ関数とはどんなものですか?
-
C言語 エラーの原因がわからな...
-
(int *)の意味
-
【C++】関数ポインタの使い方
-
if と配列の組み合わせ
-
構造体の勉強中です 合計点の高...
-
windows-findstrの正規表現を使...
-
C言語で分からないところがあり...
-
int型の変数値をバイト列として...
-
PowerShellがうまくいかない
-
C言語での奇数の和
-
「{ } で囲むだけ」は正しい?
-
std::set<int> で、ある値が何...
-
実数の整数部,小数部の取得
-
エラー 添字が付けられた値が、...
-
int16_t の _t は何?
おすすめ情報