关于字符串 “*****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 ...
随机推荐
- 基于阿里云ECS的phpwind网站备案前如何远程访问调试?
基于阿里云ECS的phpwind网站部署非常方便,但云主机的外网IP绑定域名却比较复杂.先要申请域名,成功后还需要备案.尤其是企业网站备案,需要提交的资料较多,准备资料以及审批的时间较长.这段时间在外 ...
- JQuery总结:选择器归纳、DOM遍历和事件处理、DOM完全操作和动画 (转)
JQuery总结:选择器归纳.DOM遍历和事件处理.DOM完全操作和动画 转至元数据结尾 我们后台可能用到的页面一般都是用jquery取值赋值的,发现一片不错的文章 目录 JQuery总结一:选择器归 ...
- Oracle基础 (十二)数学函数
数学函数: ABS(n):求绝对值 ),) FROM DUAL; --获取15的绝对值 结果:, BITAND(X,Y):返回X,Y进行位与(AND)的运算结果 ,), BITAND(,), BITA ...
- Linux下VI的使用
vi使用手册 VI是unix上最常用的文本编辑工具,作为unix软件测试人员,有必要熟练掌握它.进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filena ...
- chrom浏览器避免弹出“确定要离开此面吗?”提示框
一.避免弹出提示框 在网上搜了很多,答案大都是设置window.onbeforeunload=null ,但是试用之后无效. 这个问题放了两天之后返回来再次想,终于找到了答案,在此和大家分享一下: 解 ...
- http错误码大全
响应码由三位十进制数字组成,它们出现在由HTTP服务器发送的响应的第一行.响应码分五种类型,由它们的第一位数字表示:1.1xx:信息,请求收到,继续处理2.2xx:成功,行为被成功地接受.理解和采纳3 ...
- ubuntu下规避终端打开gvim出现的错误
在终端下面打开gvim会出现下面的错误: GLib-GObject-WARNING **: Attempt to add property GnomeProgram::display after cl ...
- Netty4 自定义Decoder,Encoder进行对象传递
首先我们必须知道Tcp粘包和拆包的,TCP是个“流”协议,所谓流,就是没有界限的一串数据,TCP底层并不了解上层业务数据的具体含义,它会根据TCP缓冲区的实际数据进行包的划分,一个完整的包可能会被拆分 ...
- CF 118E Bertown roads 桥
118E Bertown roads 题目:把无向图指定边的方向,使得原图变成有向图,问能否任意两点之间互达 分析:显然如果没有桥的话,存在满足题意的方案.输出答案时任意从一个点出发遍历一遍即可. 求 ...
- 【转】Oracle 中的 TO_DATE 和 TO_CHAR 函数 日期处理
Oracle 中的 TO_DATE 和 TO_CHAR 函数oracle 中 TO_DATE 函数的时间格式,以 2008-09-10 23:45:56 为例 格式 说明 显示值 备注 Year(年) ...