输入一个长度
,仅由图片中的可见字符构成的字符串
。
在一行上输出一个整数,代表给定字符串中 ASCII 码在
到
范围内的不同字符的个数。
[@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;
}