C言語についての質問です、下記のコードに整数が10桁の処理もできるよう、 したいのですが、どのようにコード記述したらよろしいでしょうか、 ご教授頂けると有難いです。
C言語についての質問です、下記のコードに整数が10桁の処理もできるよう、 したいのですが、どのようにコード記述したらよろしいでしょうか、 ご教授頂けると有難いです。 #include <stdio.h>//標準入出力の関数が入っているヘッダー #include <string.h>//文字列を操作するための関数が入っているヘッダー #define N 4//入力回数 #define CHARSIZE 256//文字配列の大きさ・入力された1行の最大文字数 //入力された文字列 先頭から空白までをチェック //文字から数値へ変換する関数 int getNo(const char* const str){//Noが2桁以上でも対応できるようにgetNo関数を追加しています。 int i;//ループカウンター int result = 0;//文字からの変換後の数値 for(i = 0;str[i] != ' ';++i){ result *= 10;//桁を繰り上げ。resultが1だったら、10にする。30だったら、300にする result += (str[i] - '0');//文字'1' - '0'することによって数値へ変換 } return result;//変換後の値を返す } int main(){//プログラムスタート char str[N][CHARSIZE];//入力値を保存するよう char temp[CHARSIZE]; //退避用文字配列 int i ,j;//カウンター printf("No 氏名\n"); for(i = 0;i < N;++i){ fgets(str[i],CHARSIZE ,stdin);//画面に入力された1行(改行も含む) } for(i = 0;i < N - 1;++i){//繰り返し処理 for(j = i + 1;j < N;++j){ if(getNo(str[i])/*NOを数値に変換*/ > getNo(str[j])/*NOを数値に変換*/){ strcpy(temp ,str[i]);//文字列を入替処理str[i]の文字をtempへ//strcpyは文字列をコピーする関数 strcpy(str[i] ,str[j]);// str[j]の文字をstr[i]へ strcpy(str[j] ,temp);// tempの文字をstr[j]へ } } } printf("\n");//コンソールに表示 for(i = 0;i < N;++i){//繰り返し処理 printf("%s",str[i]);//コンソール画面に入力された1行(改行も含む)をstr[0~N]に代入 } }