关于字符串 “*****AB**C*D*****” 中前缀、后缀和中间 '*' 的处理
一、删除前缀 '*'
- #include<iostream>
- #include<cstdio>
- using namespace std;
- //主函数
- int main()
- {
- char chr[],*b,*p; //字符串缓冲区;字符串头指针;字符串临时指针
- int chr_num=,b_num=; //输入的字符串中字符的个数;输入的字符串中前缀 * 的个数
- int i;
- //输入
- cout<<"Please input a string:"<<endl;
- gets(chr);
- //统计输入的字符串中字符的个数
- p=chr; // p 指向字符串的第一个字符
- while(*p++)
- {
- chr_num++;
- }
- //统计输入的字符串中前缀 * 的个数
- b=chr; // b 指向字符串的第一个字符
- while(*b++=='*')
- {
- b_num++;
- }
- //删除输入的字符串中的前缀 *
- for(i=;i<chr_num-b_num;i++)
- {
- chr[i]=chr[i+b_num];
- }
- chr[i]='\0';
- //输出
- cout<<"The result:"<<endl;
- puts(chr);
- return ;
- }
二、删除后缀 '*'
- #include<iostream>
- #include<cstdio>
- using namespace std;
- //主函数
- int main()
- {
- char chr[],*t,*p; //字符串缓冲区;字符串尾指针;字符串临时指针
- int chr_num=,t_num=; //输入的字符串中字符的个数;输入的字符串中后缀 * 的个数
- //输入
- cout<<"Please input a string:"<<endl;
- gets(chr);
- //统计输入的字符串中字符的个数
- p=chr; // p 指向字符串的第一个字符
- while(*p++)
- {
- chr_num++;
- }
- //统计输入的字符串中后缀 * 的个数
- t=chr+chr_num-; // t 指向字符串的最后一个字符
- while(*t--=='*')
- {
- t_num++;
- }
- //删除输入的字符串中的后缀 *
- chr[chr_num-t_num]='\0';
- //输出
- cout<<"The result:"<<endl;
- puts(chr);
- return ;
- }
三、删除前缀和后缀 '*'
- #include<iostream>
- #include<cstdio>
- using namespace std;
- //主函数
- int main()
- {
- char chr[],*b,*t,*p; //字符串缓冲区;字符串头指针;字符串尾指针;字符串临时指针
- int chr_num=,b_num=,t_num=; //输入的字符串中字符的个数;输入的字符串中前缀 * 的个数;输入的字符串中后缀 * 的个数
- int i;
- //输入
- cout<<"Please input a string:"<<endl;
- gets(chr);
- //统计输入的字符串中字符的个数
- p=chr; // p 指向字符串的第一个字符
- while(*p++)
- {
- chr_num++;
- }
- //统计输入的字符串中前缀 * 的个数
- b=chr; // b 指向字符串的第一个字符
- while(*b++=='*')
- {
- b_num++;
- }
- //统计输入的字符串中后缀 * 的个数
- t=chr+chr_num-; // t 指向字符串的最后一个字符
- while(*t--=='*')
- {
- t_num++;
- }
- //删除输入的字符串中的前缀和后缀 *
- for(i=;i<chr_num-b_num-t_num;i++)
- {
- chr[i]=chr[i+b_num];
- }
- chr[i]='\0';
- //输出
- cout<<"The result:"<<endl;
- puts(chr);
- return ;
- }
四、删除中间 '*'
- #include<iostream>
- #include<cstdio>
- using namespace std;
- //主函数
- int main()
- {
- char chr[],*b,*t,*p; //字符串缓冲区;字符串头指针;字符串尾指针;字符串临时指针
- int chr_num=; //输入的字符串中字符的个数;输入的字符串中前缀 * 的个数;输入的字符串中后缀 * 的个数
- int i;
- //输入
- cout<<"Please input a string:"<<endl;
- gets(chr);
- //统计输入的字符串中字符的个数
- p=chr; // p 指向字符串的第一个字符
- while(*p++)
- {
- chr_num++;
- }
- //令 b 指向字符串中前缀 * 之后的第一个字符
- b=chr; // b 指向字符串的第一个字符
- while(*b++=='*');
- //令 t 指向字符串中后缀 * 之前的第一个字符
- t=chr+chr_num-; // t 指向字符串的最后一个字符
- while(*t--=='*');
- //删除字符串中间的 *
- p=b; //令 p 指向字符串中前缀 * 之后的第一个字符
- while(b<=t)
- {
- if(*b!='*')
- {
- *p=*b;
- p++;
- b++;
- }
- else
- {
- b++;
- }
- }
- ++t; //令 t 指向字符串中后缀 * 的第一个 *
- while(*t)
- {
- *p=*t;
- p++;
- t++;
- }
- *p='\0';
- //输出
- cout<<"The result:"<<endl;
- puts(chr);
- return ;
- }
五、把字符串中的前缀 * 移动到字符串的末尾
- #include<iostream>
- #include<cstdio>
- using namespace std;
- //主函数
- int main()
- {
- char chr[],*b,*p; //字符串缓冲区;字符串头指针;字符串尾指针;字符串临时指针
- int chr_num=,b_num=; //输入的字符串中字符的个数;输入的字符串中前缀 * 的个数
- int i;
- //输入
- cout<<"Please input a string:"<<endl;
- gets(chr);
- //统计输入的字符串中字符的个数
- p=chr; // p 指向字符串的第一个字符
- while(*p++)
- {
- chr_num++;
- }
- //统计输入的字符串中前缀 * 的个数
- b=chr; // b 指向字符串的第一个字符
- while(*b++=='*')
- {
- b_num++;
- }
- //把字符串中的前缀 * 移动到字符串的末尾
- for(i=;i<chr_num-b_num;i++) //删除输入的字符串中的前缀 *
- {
- chr[i]=chr[i+b_num];
- }
- while(i<chr_num) //在字符串的末尾添加与前缀个数相同的 *
- {
- chr[i++]='*';
- }
- chr[i]='\0';
- //输出
- cout<<"The result:"<<endl;
- puts(chr);
- return ;
- }
六、把字符串中的后缀 * 移动到字符串的开头
- #include<iostream>
- #include<cstdio>
- using namespace std;
- //主函数
- int main()
- {
- char chr[],*b,*t,*p; //字符串缓冲区;字符串头指针;字符串尾指针;字符串临时指针
- int chr_num=,b_num=,t_num=; //输入的字符串中字符的个数;输入的字符串中前缀 * 的个数;输入的字符串中后缀 * 的个数
- int i;
- //输入
- cout<<"Please input a string:"<<endl;
- gets(chr);
- //统计输入的字符串中字符的个数
- p=chr; // p 指向字符串的第一个字符
- while(*p++)
- {
- chr_num++;
- }
- //统计输入的字符串中前缀 * 的个数
- b=chr; // b 指向字符串的第一个字符
- while(*b++=='*')
- {
- b_num++;
- }
- //统计输入的字符串中后缀 * 的个数
- t=chr+chr_num-; // t 指向字符串的最后一个字符
- while(*t--=='*')
- {
- t_num++;
- }
- //把字符串中的后缀 * 移动到字符串的开头
- for(i=chr_num-t_num-;i>=;i--) //删除输入的字符串中的后缀 *
- {
- chr[i+t_num]=chr[i];
- }
- for(i=;i<t_num;i++) //在字符串的开头添加与后缀个数相同的 *
- {
- chr[i]='*';
- }
- //输出
- cout<<"The result:"<<endl;
- puts(chr);
- return ;
- }
七、使字符串的前缀 * 不多于 n 个
- #include<iostream>
- #include<cstdio>
- using namespace std;
- //主函数
- int main()
- {
- char chr[],*b,*p; //字符串缓冲区;字符串头指针;字符串尾指针;字符串临时指针
- int chr_num=,b_num=; //输入的字符串中字符的个数;输入的字符串中前缀 * 的个数;输入的字符串中后缀 * 的个数
- int i,n=;
- //输入
- cout<<"Please input a string:"<<endl;
- gets(chr);
- //统计输入的字符串中字符的个数
- p=chr; // p 指向字符串的第一个字符
- while(*p++)
- {
- chr_num++;
- }
- //统计输入的字符串中前缀 * 的个数
- b=chr; // b 指向字符串的第一个字符
- while(*b++=='*')
- {
- b_num++;
- }
- //使字符串的前缀 * 不多于 n 个
- if(b_num>n)
- {
- //删除输入的字符串中的前缀和后缀 *
- for(i=;i<chr_num-b_num;i++)
- {
- chr[i+n]=chr[i+b_num];
- }
- chr[i+n]='\0';
- }
- //输出
- cout<<"The result:"<<endl;
- puts(chr);
- return ;
- }
八、使字符串的后缀 * 不多于 n 个
- #include<iostream>
- #include<cstdio>
- using namespace std;
- //主函数
- int main()
- {
- char chr[],*t,*p; //字符串缓冲区;字符串头指针;字符串尾指针;字符串临时指针
- int chr_num=,t_num=; //输入的字符串中字符的个数;输入的字符串中前缀 * 的个数;输入的字符串中后缀 * 的个数
- int i,n=;
- //输入
- cout<<"Please input a string:"<<endl;
- gets(chr);
- //统计输入的字符串中字符的个数
- p=chr; // p 指向字符串的第一个字符
- while(*p++)
- {
- chr_num++;
- }
- //统计输入的字符串中后缀 * 的个数
- t=chr+chr_num-; // t 指向字符串的最后一个字符
- while(*t--=='*')
- {
- t_num++;
- }
- //使字符串的后缀 * 不多于 n 个
- if(t_num>n)
- {
- chr[chr_num-t_num+n]='\0';
- }
- //输出
- cout<<"The result:"<<endl;
- puts(chr);
- return ;
- }
关于字符串 “*****AB**C*D*****” 中前缀、后缀和中间 '*' 的处理的更多相关文章
- Java中++,--,前缀后缀表达值的不同,与^的值计算
package 习题1; /** * ++ -- 与 ^ 的一些计算 * @author SeeClanUkyo * */ public class Test4 { public static voi ...
- hdoj 2594 Simpsons’ Hidden Talents 【KMP】【求串的最长公共前缀后缀】
Simpsons' Hidden Talents Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java ...
- UVA - 11475 Extend to Palindrome —— 字符串哈希 or KMP or 后缀数组
题目链接:https://vjudge.net/problem/UVA-11475 题意: 给出一个字符串,问在该字符串后面至少添加几个字符,使得其成为回文串,并输出该回文串. 题解: 实际上是求该字 ...
- POJ 2752 (KMP 所有可能长度的前缀后缀) Seek the Name, Seek the Fame
题意: 求一个字符串的相同前缀后缀的所有可能的长度,这里该字符串其本身也算自己的前缀和后缀. 分析: 我们知道next数组的性质是,该字符之前的字符串的最大相同前缀后缀. 既然知道了最大的,即next ...
- c++实验4 栈及栈的应用+回文+中、后缀表达式
栈及栈的应用+回文+中.后缀表达式 1.栈顺序存储结构的基本操作算法实现 (1)栈顺序存储结构的类定义: class SeqStack { private: int maxsize; DataType ...
- 1280 前缀后缀集合(map)
1280 前缀后缀集合 题目来源: Codility 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 一个数组包含N个正整数,其中有些是重复的.一个前缀后缀集是满足 ...
- python的正则表达式 re-------可以在字符串前加上 r 这个前缀来避免部分疑惑,因为 r 开头的python字符串是 raw 字符串,所以里面的所有字符都不会被转义
正则表达式使用反斜杆(\)来转义特殊字符,使其可以匹配字符本身,而不是指定其他特殊的含义.这可能会和python字面意义上的字符串转义相冲突,这也许有些令人费解.比如,要匹配一个反斜杆本身,你也许要用 ...
- Java基础之写文件——将多个字符串写入到文件中(WriteProverbs)
控制台程序,将一系列有用的格言写入到文件中. 本例使用通道把不同长度的字符串写入到文件中,为了方便从文件中恢复字符串,将每个字符串的长度写入到文件中紧靠字符串本身前面的位置,这可以告知在读取字符串之前 ...
- sql 解析字符串添加到临时表中 sql存储过程in 参数输入
sql 解析字符串添加到临时表中 sql存储过程in 参数输入 解决方法 把字符串解析 添加到 临时表中 SELECT * into #临时表 FROM dbo.Func_SplitOneCol ...
随机推荐
- 02. SQL表达式的灵活使用
什么是SQL表达式?在SQL语句中,表达式可以是函数,也可以是列和列之间的混合运算.很多时候,对于表达式的使用,可以比单独操作表上的列,带来更多方便. 一. 在HAVING中使用表达式 --drop ...
- 一:Html基本结构
1:什么是Html(HTML 概念)? Html是 HyperText mark-up Language 的缩写,意思是:超文本标记语言 2.HTML的发展史? 1991年:出现Html1.0(不存在 ...
- amoeba实现MySQL读写分离
amoeba实现MySQL读写分离 准备环境:主机A和主机B作主从配置,IP地址为192.168.131.129和192.168.131.130,主机C作为中间件,也就是作为代理服务器,IP地址为19 ...
- 《UNIX环境高级编程》学习心得 四 文件I/O(一)
这里说的文件I/O是相对标准I/O来说的.主要介绍在UNIX系统中常用的五个文件I/O函数:open.read.write.lseek.以及close. 一.open和opennat #include ...
- ORA-01034: 、ORA-01078: 和 LRM-00109: 的解决方法
环境:Linux 5.4 Oracle 11.2.0.3 在Linux上连接Oracle时遇到报错: SQL> show parameter sgaORA-01034: ORACLE not a ...
- 四舍五入PK银行四舍五入
描述 在实际开发中decimal.Round(1.23525,4)!=1.2353实际是1.2352,而decimal.Round(1.23535,4)==1.2354 说明 四舍五入:当舍去位的数值 ...
- thinkphp,javascript跨域请求解决方案
javascript跨域请求解决方案 前言 对于很多前端或者做混合开发的同学,我们难免会遇到跨域发起请求业务,比如A站点向B站点请求数据等等.由于最近要做一个站点集群的项目,所以具体业务要求很多个站点 ...
- hibernate的第一个程序
#建表语句 create database hibernate; use hibernate; create table user( id int primary key, name varchar( ...
- JavaScript--正则表达式(笔记)
一 什么是正则表达式 // 正则表达式(regular expression)是一个描述字符模式的对象; // JS定义RegExp类表示正则表达式; // String和RegExp都定义了使用正则 ...
- 反射调用与Lambda表达式调用
想调用一个方法很容易,直接代码调用就行,这人人都会.其次呢,还可以使用反射.不过通过反射调用的性能会远远低于直接调用——至少从绝对时间上来看的确是这样.虽然这是个众所周知的现象,我们还是来写个程序来验 ...