题目描述
分离字符串中的不同字符单独成行输出
输入
多组测试数据,每组测试数据仅一行字符串(不含空格,字符串长度小于等于200).
输出
分离字符串中的数字、字母、特殊字(分离的时候字符顺序不要变).
输出为三行:第一行为字母,第二行为数字,第三行为特殊字符.
样例输入
c5430-456cm9203,’36.g64x4/546[45v];;v5642/;;432
样例输出复制
ccmgxvv
5430456920336644546455642432
-,’./[];;/;;
代码
#include <stdio.h>
#include <string.h>
int main() {
char s[200];
while (scanf("%s", &s) != EOF) {
int n;
//一定要初始化,不然会在第一次输出的基础上依次覆盖
char c[200] = {'0'}, g[200] = {'0'}, h[200] = {'0'};
int j = 0, k = 0, l = 0;
n = strlen(s);
for (int i = 0; i < n; i++) {
if (s[i] >= '0' && s[i] <= '9') {
c[j] = s[i];
j++;
} else if ((s[i] >= 'A' && s[i] <= 'Z') || (s[i] >= 'a' && s[i] <= 'z')) {
g[k] = s[i];
k++;
} else {
h[l] = s[i];
l++;
}
}
printf("%s\n%s\n%s\n", g, c, h);
}
return 0;
}