全知全能を目指す人のありがたい雑記

何かしら意味のあるありがた~い話か、意味のない雑念だらけの日記を書く予定です。

半角文字列を入力し、英字のみの文字列と数字のみの文字列に分解して出力するプログラム

最近Cばっか記事に書いてるなぁ

C言語はどうしても他の言語と比べてコード量が多く読みづらくなっちゃうから
あんまり好きじゃないんだ

80文字指定って言われたので配列にしたけど、
サイズ無制限にしたいってなったときは
文字列をcharのポインタを使いたいよね。

あほだから書き方が微妙に分からんです。。

#include <stdio.h>
#include <string.h>

int isNumeric(char moji){
  if( (moji>='a'&& moji<='z') || (moji>='A' && moji<='Z')){
    return 0;
  }
  else if(moji>='0'&& moji<='9'){
    return 1;
  }
  return -1;
}

int main(void){

    char input[80] = "";
    
    printf("半角文字列を入力:");
    scanf("%s",input);
    printf("%s",input);
    
    char numeric[80] = "";
    char string[80] = "";
    int numericLen = 0;
    int stringLen = 0;
    
    int len = strlen( input );
    
    for(int pos = 0; pos < len; ++pos ){
        
        if(isNumeric(input[pos])){
            numeric[numericLen++] = input[pos];
        }
        else{
            string[stringLen++] = input[pos];
        }
    }
    
    if(strlen(string)){
        printf("\n英字のみの文字列「%s」",string);
    }
    else{
        printf("\n英字は1文字も入力されていませんでした。");
    }
    
    if(strlen(numeric)){
        printf("\n数字のみの文字列「%s」",numeric);
    }
    else{
        printf("\n数字は1文字も入力されていませんでした。");
    }
    
    return 0;
}