题目:排除一个字符串中的特殊字符,要求有效字符为字母,数字还有‘*’,如果*出现在字符串的开始和末尾位置,则保留,如果*出现在字符串的中间,则删除。
1 #include<iostream>2 #include<string>
3 using namespace std;
4 int main()
5 {
6 string str;
7 getline(cin,str);
8 int size = str.size();
9 string des;
10 int j = 0;
11 for(int i = 0;i < size; i++)
12 {
13 if((str[i] >= '0' && str[i] <= '9') || (str[i] > 'a' && str[i] < 'z') || (str[i] > 'A' && str[i] < 'Z') || str[i] == '*')
14 {
15 if(0 == i)
16 {
17 des[j] = str[0];
18 j++;
19 }
20 else if(i > 0 && i < size-1)
21 {
22 if(str[i] != '*')
23 {
24 des[j] = str[i];
25 j++;
26 }
27 }
28 else if(size-1 == i)
29 {
30 des[j] = str[i];
31 }
32 }
33 else
34 {
35 return 0;
36 }
37 }
38
// 打印目标数组
40 {
41 cout << des[i];
42 }
43 cout << endl;
44 return 0;
45 }
注意:getline用于读取一串字符,直到遇到换行符(enter)字符结束。