题目描述
编写一个函数,计算字符串中含有的不同字符的个数。字符在ACSII码范围内(0~127)。不在范围内的不作统计。
输入描述:
输入N个字符,字符在ACSII码范围内。
输出描述:
输出范围在(0~127)字符的个数。
输入例子:
abc
输出例子:
3
解答1(使用集合set):
#include <iostream> #include <vector> #include <algorithm> #include <string> #include <set> using namespace std; int main() { string str; int i; set<char>s; while(cin>>str) { for(i=0;i<str.length();++i) { if(str[i]>0&&str[i]<127) { s.insert(str[i]); } } cout<<s.size()<<endl; } return 0; }
解答2(使用数组):
#include<iostream> using namespace std; int main() { char ch; int arr[128]={0}; int count=0; while(cin>>ch){ if(ch>=0 && ch<=127){ arr[ch]++; } } for(int i=0;i<128;i++){ if(arr[i]>0) count++; } cout<<count<<endl; return 0; }