串的简单处理
来源:互联网 发布:尘埃3 for mac 编辑:程序博客网 时间:2024/04/27 18:39
题目描述:
串的处理
在实际的开发工作中,对字符串的处理是最常见的编程任务。本题目即是要求程序对用户输入的串进行处理。具体规则如下:1. 把每个单词的首字母变为大写。
2. 把数字与字母之间用下划线字符(_)分开,使得更清晰
3. 把单词中间有多个空格的调整为1个空格。
例如:
用户输入:
you and me what cpp2005program
则程序输出:
You And Me What Cpp_2005_program
用户输入:
this is a 99cat
则程序输出:
This Is A 99_cat
我们假设:用户输入的串中只有小写字母,空格和数字,不含其它的字母或符号。每个单词间由1个或多个空格分隔。
假设用户输入的串长度不超过200个字符。
思路:
对于串采用栈的思想,对栈顶元素和待入栈的元素进行比较,以确定对其何种操作。
代码:
#include <stdio.h>#include <stdlib.h>int main(int argc, char *argv[]){ char data[200]; char data2[300]; gets(data); int i=0,j=0; while(data[i]==' ') i++; //去掉开头的所有空格 if(data[i]<='z'&&data[i]>='a') data2[j]=data[i++]-32; //首字符大写 else data2[j]=data[i++]; for(;i<strlen(data);i++){ if(data[i]==' '){ if(data2[j]==' ') //过滤重复的空格 continue; else{ data2[++j]=data[i]; } } else if(data[i]>='a'&&data[j]<='z'){ if(data2[j]==' ') //单词首字符大写 data2[++j]=data[i]-32; else if(data2[j]<='9'&&data2[j]>='0'){ //数字和字符之间加_ data2[++j]='_'; data2[++j]=data[i]; } else{ data2[++j]=data[i]; } } else{ if(data2[j]>='A'&&data2[j]<='z'){ //数字和字符之间加_ data2[++j]='_'; data2[++j]=data[i]; } else{ data2[++j]=data[i]; } } } while(data2[j]==' '){ //去掉末尾的空格 j--;} data2[j+1]='\0'; puts(data2); system("PAUSE"); return 0;}
0 0
- 串的简单处理
- 串的简单处理
- 串的简单处理
- 串的简单处理
- 串的简单处理
- 串的简单处理
- 串的简单处理
- 串的简单处理
- 串的简单处理
- 串的简单处理
- 蓝桥杯 串的简单处理
- 【蓝桥杯】【串的简单处理】
- 蓝桥 串的简单处理
- ytu 1304:串的简单处理
- 蓝桥杯 串的简单处理 解题报告
- Java算法--串的简单处理
- OJ 刷题---串的简单处理
- 算法练习-串的简单处理
- stomp 消息协议 消息队列
- 大家一起去东莞!!
- lucene 的评分机制
- 常用进程相关操作
- Flex入门--Flex基本语法
- 串的简单处理
- 第一个小爬虫
- Palindrome Partitioning II
- android 用httpClient和HttpUrlConnection上传文件
- proguard.cfg(转载)
- ASPCMS多条件匹配搜索
- 列表编辑列下的“上移” “下移”操作
- 设置定时任务的技巧
- js之关键字和保留字