#include <iostream.h> #include "ctype.h" void expand(char s1[], char s2[]) { int i, j, a, b, c; j = 0; for (i = 0; (c = s1[i]) != '\0'; i++) if (c == '-') { a = s1[i - 1]; b = s1[i + 1]; if (isalpha(a) && isalpha(b) || isdigit(a) && isdigit(b)) { //函数isalpha(a)用于判断字符a是否为字母,isdigit(b) 用于判断字符b是否为数 //字,如果是,返回1,否则返回0 j--; do s2[j++] = a++; while (tolower(a) < tolower(s1[i + 1])); } else s2[j++] = c; } else s2[j++] = c; s2[j] = '\0'; } void main(void) { char s1[100], s2[300]; cin >> s1; expand(s1, s2); cout << s2 << endl; }
输入:wer2345d-h454-82qqq
输出:1