配列に入力する文字指定と、特定の文字で終了する条件の設定についてお尋ねします。
下記のソースコードに、以下の条件を加えたいです。
①入力できる半角数字は「0」または「1」の2種類のみ。
②文字列の先頭が「S」の場合はループの終了。
アドバイスお待ちしております。
// てすとん.cpp : コンソール アプリケーションのエントリ ポイントを定義します。
//
#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
{
return 0;
}
#include <stdio.h>
#include <string.h>
int main(void){
char str1[256]; /* 文字列バッファ /
int slen; / 改行ぬきの長さ /
int nerr; / エラーカウント /
int i; / 試行回数 */
printf("「0」と「1」のみで構成された16桁の数字を入力してください。\n\n");
for (i = 0; i < 8; i++) {
/指定文字数以内で入力されるまで繰り返す/
do{ nerr = 0;
/*入力案内*/ printf(" データ%d(除改行;半角16字): ", i + 1); /*文字列の読み込み*/ fgets( str1, sizeof(str1), stdin ); *strchr(str1,'\n') = '\0'; /* 含まれた改行を消す */ slen = strlen(str1); /* 未入力時のエラーメッセージ */ if( slen == 0 ){ printf( "文字列がありません!\n" ); nerr=1; } /* 指定文字数以上入力時のエラーメッセージ */ if( slen > 16 ){ printf( "長すぎます!\n" ); nerr = 1; } /* 指定文字数以下入力時のエラーメッセージ */ if( slen < 16 ){ printf( "短すぎます!\n" ); nerr = 1; } /* 再入力のプロンプト(共通メッセージ) */ if( nerr ){ printf( " 半角16文字でお願いします。\n " ); }
}while(nerr);
}
printf(" 入力された文字列は:%s\n ", str1);
return 0;
}
回答1件
あなたの回答
tips
プレビュー