【1171】C语言实验——保留整数 (栈)SDUT
2014-08-28 19:40
405 查看
C语言实验——保留整数
Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^题目描述
输入一个字符串str1,把其中的连续非数字的字符子串换成一个‘*’,存入字符数组str2 中,所有数字字符也必须依次存入 str2 中。输出str2。输入
输入为一行字符串str1,其中可能包含空格。字符串长度不超过80个字符。输出
输出处理好的字符串str2。示例输入
$Ts!47&*s456 a23* +B9k
示例输出
*47*456*23*9*
本题用栈的思想来解决较为简单,先用gets输入一串字符串str1(因为题目说可能有空格),再遍历str1,(1)若str1中出现数字,就让数字进栈(即把此字符写进str2中),(2)若str1中不是数字,先看
str2中前一项是否为‘*’,若不是就让‘*’进栈。
#include <stdio.h>#include <string.h>#include <stdlib.h>int main(){char str1[100];char str2[100];int n;int i;int jin=0;memset(str2,0,sizeof(str2));gets(str1);n=strlen(str1);if(str1[0]>='0'&&str1[0]<='9')//先让第一个字符进栈,以便后面进行比较str2[jin++]=str1[0];elsestr2[jin++]='*';for(i=1;i<n;i++){if(str1[i]>='0'&&str1[i]<='9')//步骤(1)str2[jin++]=str1[i];else{if(str2[jin-1]!='*')//步骤(2)str2[jin++]='*';}}for(i=0;i<jin;i++)printf("%c",str2[i]);printf("\n");return 0;}[/code]
相关文章推荐
- 【1171】C语言实验——保留整数 (栈)SDUT
- SDUT-1171 C语言实验——保留整数
- 1171 C语言实验——保留整数
- 1171-C语言实验-保留整数
- SDUT-1175 C语言实验——分割整数
- C语言实验——保留整数
- 1171 保留整数 sdut
- JAVA语言实验——保留整数
- <sdut-ACM> 1175C语言实验——分割整数
- SDUT ACM 实验九 C语言实验 保留整数
- SDUT-1162 C语言实验——保留字母
- sdut-1153 C语言实验——求两个整数之中较大者
- C语言实验——保留整数
- SDUT-1162-->C语言实验——保留字母
- C语言实验——保留整数 (sdut oj)
- ytu 1985:C语言实验——保留字母(水题)
- SDUT-1170 C语言实验——最值
- C语言实验——交换两个整数的值(顺序结构)
- <sdut-ACM>1170 C语言实验-----最值
- 山东理工大学ACM平台题答案 C语言实验——分割整数1175