iT邦幫忙

0

c語言問題,有神能救命嗎

  • 分享至 

  • xImage

判斷一字串是否為英文字母與數字交錯的字串,是則輸出 Y,否則輸出
N。例 1:輸入 a3P69,則輸出 Y。例 2:輸入 2S5G,則輸出 Y。

「交錯」的定義不是很清楚
a3P69 是 Y:a3P69a 是 Y 或是 N?
2S5G 是 Y:2S5G8 是 Y 或是 N?
12345ABCDE2 是 Y 或是 N?
1ABCDE 是 Y 或是 N?
交錯, 混雜 是不同的.
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
Retex
iT邦研究生 5 級 ‧ 2022-06-24 22:57:37

小弟不才,多多包容。

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

int main(){
	char input[50]={0};
	int Alphabet=0;
	int Digit=0;
	int Mix=0;

	printf("\n請輸入資料: ");
	scanf("%s",&input);
	
	int Len = strlen(input);

	for(int i=0; i<Len; i++){
        //判斷字母
		if(isalpha(input[i])){
			Alphabet=1;
		}
        //判斷數字
		if(isdigit(input[i])){
			Digit=1;
		}
		if(Alphabet==1 && Digit==1){
			Mix=1;
			break;
		}
	}

	if(Mix==1){
		printf("Y");
	}else{
		printf("N");
	}

    printf("\n\n");
    system("pause");
    return 0;
}
淺水員 iT邦大師 6 級 ‧ 2022-06-25 00:39:20 檢舉

提供參考(利用位元運算)

int flag = 0;
for(int i = 0; i < Len; i++){
    //判斷字母
    if(isalpha(input[i])){
        flag |= 1;
    }
    //判斷數字
    if(isdigit(input[i])){
        flag |= 2;
    }
}
printf("%c", flag == 3 ? 'Y' : 'N');

我要發表回答

立即登入回答