在一行上输入一个长度
的字符串
,代表给定的字符串。
在一行上输出一个整数,代表给定字符串中
在
到
范围内的不同字符的个数。
[@A8aA].0
8
#include <stdint.h> #include <stdio.h> #include "stdint.h" int main() { uint32_t hash_map[127] = {0},cnt = 0; int8_t word; do { word = getchar(); hash_map[word]++; if(hash_map[word] == 1) cnt++; }while (word != '\n' && word != '\0' && word != EOF); printf("%d",cnt-1); return 0; }
#include <stdio.h> #include <stdbool.h> int main(int argc, char const *argv[]) { bool flag[128] = {false}; char ch; unsigned char count; while (scanf("%c", &ch) && ch != '\n') { if (flag[ch] == false) { flag[ch] = true; count++; } } printf("%d", count); return 0; }
#include <stdio.h> int main() { int hash[127] = {0}; int i = 0; char input; int count; while (scanf("%c", &input) != EOF) { if (input == '\n') break; if (hash[input] == 1) { NULL; } else { hash[input] = 1; } } for (int i = 0; i < 127; i++) { if (hash[i] == 1) count++; } printf("%d", count); return 0; }
#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { char value[501] = {0}; char array[128] = {0}; int ValueLen = 0; int index = 0; int num = 0; scanf("%s", &value[0]); ValueLen = strlen(value); for(index = 0 ; index < ValueLen; index++) { if(array[value[index]] == 0) { num++; array[value[index]] = 1; } } printf("%d\n",num); return 0; }
#include "stdio.h" #include "string.h"、 //思路:首先判断str数组的元素是否在范围内,如果在,则将其值对应的existed的位置的元素设为1,最后统计existed里有多少个1. int main() { char str[500] = {0}, existed[500] = {2}; scanf("%s", str); int i,length = strlen(str),a,count = 0,b; for (i = 0; i < length; i++) { if (str[i] >= 0 && str[i] <= 127) { existed[(int) str[i]] = 1; } } for(i = 0; i < 128;i++) { if (existed[i] == 1) { count++; } } printf("%d",count); }
#include <stdio.h> #include <string.h> int main() { char n[500]; char q[128]={0}; int count=0; while (scanf("%s", n) != EOF) { for(int i=0;i<strlen(n);i++) { if(q[(int)n[i]] != n[i]) { q[(int)n[i]]=n[i]; count++; } } printf("%d",count); } return 0; }
#include <stdio.h> #include <string.h> char InputString[500]; int CharNum[128] = {0}; int main() { scanf("%s",InputString); int VariNum = 0; for(int i = 0;i < strlen(InputString);i++) { int m = (int)InputString[i]; char n = InputString[i]; if((int)InputString[i] >= 0 &&((int)InputString[i] <= 127)) { CharNum[(int)InputString[i]] = 1; } } for(int i = 0;i<128;i++) { if(CharNum[i] == 1) VariNum++; } printf("%d",VariNum); }
#include <stdio.h> #include <stdlib.h> #include<string.h> int main() { char arr[501]={0}; int c=0; fgets(arr, sizeof(arr), stdin);//输入字符串 int len=strlen(arr);//计算长度,循环的次数 for(int i=0;i<len;i++) { if((arr[i]>=0&&arr[i]<=127)&&(arr[i]!='\n'))//换行符号要排除 { c++;//出现第一次 for(int j=i+1;j<len;j++) { if(arr[j]==arr[i]) { c--;//第二次出现 break;//跳出小循环 } } } } printf("%d",c); return 0; }
#include <stdio.h> #include <string.h> int main() { char str[500], hash[127] = { NULL }; int i, b, cnt = 0, k; scanf("%s", str); for (i = 0; i < strlen(str); i++) { k = str[i]/17+str[i] % 17; while (hash[k] != NULL && hash[k] != str[i]) { k++; }//线性探测再散列 if (hash[k] != str[i]&&(str[i]>=0&&str[i]<=127)) { hash[k] = str[i]; cnt++; } } printf("%d", cnt); return 0; }