一、知识点
当需要类似括号( )这样成对出现的字符时,可以通过设置flag来标示
比如flag等于0表示前面所有的括号都是成对的
flag等于1表示最靠近的括号是未成对的;满足条件时,补齐括号,使其成对,flag置0
二、题目
1、描述
将一个字符串中所有的整数前后加上符号“*”,其他字符保持不变。连续的数字视为一个整数
2、数据范围
字符串长度满足 1<= n <=100
3、输入
输入一个字符串
4、输出
字符中所有出现的数字前后加上符号“*”,其他字符保持不变
三、自己写的代码
#include<stdio.h>
int main() {
char line[300];
int c, i = 0;
char flag = 0;
while ((c = getchar()) != 10) {
if (c >= '0' && c <= '9') {
if (flag == 0) {
line[i++] = '*';
line[i++] = c;
flag = 1;
} else {
line[i++] = c;
}
} else {
if (flag == 1) {
line[i++] = '*';
line[i++] = c;
flag = 0;
} else {
line[i++] = c;
}
}
}
if (flag == 1) {
line[i++] = '*';
}
line[i] = '\0';
printf("%s\n", line);
return 0;
}