実践型研修
今日はこんなプログラム。
/*入力した値(正の整数)を、文字加工して出力する*/
/*プログラム作成者:*/
#include
#include
#define YOUSO 6
main(){
int ch09( int input_i, char change );
int input_i, n;
char change[YOUSO] = { '\0' };
//正の整数入力
for( ; ; ){
printf( "正の整数を入力して下さい。\n" );
printf( "入力値==>" );
scanf( "%d", &input_i );
//入力されたものが正の整数であるかの判断
if( input_i < 0 ){
;
}
else{
break;
}
}
n = ch09( input_i, change );
//戻り値による処理
if( n == 0 ){
printf( "正常終了。\n" );
}
else{
printf( "入力された値が桁越えたため正常に処理されませんでした。\n" );
}
}
int
ch09( int input_i, char change ){
int mod, count;
int i, j, n;
char hanger[YOUSO] = { '\0' };
//input_iに0が入力されたときの処理
if( input_i == 0 ){
mod = input_i % 10 + 48;
hanger[0] = (char)mod;
}
//input_iに正の整数が入力されたときの処理
i = 0;
while( input_i ){
mod = input_i % 10 + 48; //
hanger[i] = (char)mod; //整数を文字列に直す処理
input_i = input_i / 10; //
i++;
}
//hangerの文字列の長さを求める
n = strlen( hanger );
//文字の長さが5より大きければ-1を返す
if( n > YOUSO - 1 ){
return -1;
}
//文字の長さが5以下のときは0を返す
else{
count = 0;
j = YOUSO - 1;
//配列hangerにあるものを配列changeへ(4桁目にカンマを入れる)
for( i = 0; hanger[i] != '\0'; i++, j-- ){
change[j] = hanger[i];
count++;
if( count == 4 ){
change[j] = ',';
count = 0;
i--;
}
}
//ヌル文字のところに'*'を入れる処理
for( i = 0; i < YOUSO; i++ ){
if( change[i] == '\0' ){
change[i] = '*';
}
}
//出力処理
for( i = 0; i < YOUSO; i++ ){
printf( "%c", change[i] );
}
printf( "\n" );
return 0;
}
}