关于字符串 “*****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 ...
随机推荐
- javaweb学习总结二十四(servlet经常用到的对象)
一:ServletConfig对象 1:用来封装数据初始化参数,在服务器web.xml配置文件中可以使用<init-param>标签配置初始化参数. 2:实例演示 web.xml文件中配置 ...
- GSS6 4487. Can you answer these queries VI splay
GSS6 Can you answer these queries VI 给出一个数列,有以下四种操作: I x y: 在位置x插入y.D x : 删除位置x上的元素.R x y: 把位置x用y取替 ...
- List<T>.Sort() 排序的用法
List<T> 可以通过 .Sort()进行排序,但是当 T 对象为自定义类型时(比如自定义模型),就需要 IComparable接口重写其中的方法来实现,实现代码如下: class Pr ...
- backbone.Model 源码笔记
backbone.Model backbone的model(模型),用来存储数据,交互数据,数据验证,在view里面可以直接监听model来达到model一改变,就通知视图. 这个里面的代码是从bac ...
- Javascript之图片上传预览
使用Javascript之图片上传预览,我们无需上传到服务器中,兼容所有浏览器. 关键方法是使用微软库filter:progid:DXImageTransform.Microsoft.AlphaIma ...
- 【学习笔记】【C语言】自增自减
1. 简单使用 ++ 自增运算符.如a++,++a,都等价于a = a+1 --自减运算符.如a--,--a,都等价于a = a-1 5++是错误的,因为5是常量 2. ++a和a++的区别 int ...
- 20141128--JavaScript HTML DOM
通过 HTML DOM,可访问 JavaScript HTML 文档的所有元素. HTML DOM 当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model). 每个 ...
- Ajax_2
<script> var xmlHttp;//创建一个对象 function queryDetail(id){ if(window.ActiveXObject){ xmlHttp = ne ...
- NodeJS服务器:一行代码 = 一个的HTTP服务器
从这一篇开始,我们进入技术讲解的话题,逐步实现用NodeJS实现文件的传送共享服务. 前文我们讲过,NodeJS是最擅长做网络服务器的,今天我们就来用NodeJS做一个最简单的服务器. 先看一幅图: ...
- 分享10款功能强大的HTML5/CSS3应用插件
1.纯CSS3美化Checkbox和Radiobox按钮 外观很时尚 利用CSS3我们可以打造非常具有个性化的用户表单,今天我们就利用CSS3美化Checkbox复选框和Radiobox单选框.CSS ...