ハイパーニートプログラマーへの道

頑張ったり頑張らなかったり

【ニコニコ動画】ミクと学ぶC言語 第14回のコードを改造してみた

ミクと学ぶC言語第14回

ログイン成功するまで繰り返す、という感じに変えてみました。

/* pass.c */
#include<stdio.h>
#include<string.h>
#define NUM 8

int main(int argc, char const *argv[])
{
    char input[NUM+1]={}; // +1でNULLを入れる
    char pass[] = "mikuc";
    size_t length; // 動画ではint型で宣言していた
    int flag = 0;
    
    do {
        printf("パスワードを入力してください(8字以内)\n");
        scanf("%s", input); // &は要らない
        // 文字列の比較
        length = strlen(input); // intで宣言したなら、(int)で明示的にキャスト
        printf("長さ:%lu\n",length); // size_tならlu,longならld
        if (length>NUM || strcmp(input,pass) == 1){ // strcmpを直接入れてる
            printf("ログイン失敗\n");
            flag = 0;
        } else if(strcmp(input,pass) == 0){
            printf("ログイン成功\n");
            flag = 1;
        }
        
    } while (flag==0);
    
    return 0;
}