一、删除前缀 '*'

 #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*****” 中前缀、后缀和中间 '*' 的处理的更多相关文章

  1. Java中++,--,前缀后缀表达值的不同,与^的值计算

    package 习题1; /** * ++ -- 与 ^ 的一些计算 * @author SeeClanUkyo * */ public class Test4 { public static voi ...

  2. hdoj 2594 Simpsons’ Hidden Talents 【KMP】【求串的最长公共前缀后缀】

    Simpsons' Hidden Talents Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java ...

  3. UVA - 11475 Extend to Palindrome —— 字符串哈希 or KMP or 后缀数组

    题目链接:https://vjudge.net/problem/UVA-11475 题意: 给出一个字符串,问在该字符串后面至少添加几个字符,使得其成为回文串,并输出该回文串. 题解: 实际上是求该字 ...

  4. POJ 2752 (KMP 所有可能长度的前缀后缀) Seek the Name, Seek the Fame

    题意: 求一个字符串的相同前缀后缀的所有可能的长度,这里该字符串其本身也算自己的前缀和后缀. 分析: 我们知道next数组的性质是,该字符之前的字符串的最大相同前缀后缀. 既然知道了最大的,即next ...

  5. c++实验4 栈及栈的应用+回文+中、后缀表达式

    栈及栈的应用+回文+中.后缀表达式 1.栈顺序存储结构的基本操作算法实现 (1)栈顺序存储结构的类定义: class SeqStack { private: int maxsize; DataType ...

  6. 1280 前缀后缀集合(map)

    1280 前缀后缀集合 题目来源: Codility 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 一个数组包含N个正整数,其中有些是重复的.一个前缀后缀集是满足 ...

  7. python的正则表达式 re-------可以在字符串前加上 r 这个前缀来避免部分疑惑,因为 r 开头的python字符串是 raw 字符串,所以里面的所有字符都不会被转义

    正则表达式使用反斜杆(\)来转义特殊字符,使其可以匹配字符本身,而不是指定其他特殊的含义.这可能会和python字面意义上的字符串转义相冲突,这也许有些令人费解.比如,要匹配一个反斜杆本身,你也许要用 ...

  8. Java基础之写文件——将多个字符串写入到文件中(WriteProverbs)

    控制台程序,将一系列有用的格言写入到文件中. 本例使用通道把不同长度的字符串写入到文件中,为了方便从文件中恢复字符串,将每个字符串的长度写入到文件中紧靠字符串本身前面的位置,这可以告知在读取字符串之前 ...

  9. sql 解析字符串添加到临时表中 sql存储过程in 参数输入

    sql 解析字符串添加到临时表中  sql存储过程in 参数输入 解决方法 把字符串解析 添加到 临时表中 SELECT * into #临时表   FROM dbo.Func_SplitOneCol ...

随机推荐

  1. ASUS K751笔记本电脑使用U盘启动

    ASUS K751笔记本电脑缺省是不能使用U盘启动的.即使开机按ESC键出现启动设备选项菜单,选择了U盘也一样会从硬盘启动. 为此需进行如下步骤: 开机按F2进入bios如下设置: Security- ...

  2. 剑指Offer08 二进制中1的个数

    /************************************************************************* > File Name: 08_NumOf1 ...

  3. git之添加ssh

    1.ssh-keygen 2.cat ~/.ssh/id_rsa.pub 3.git config user.email "huangsy13@gmail.com" 4.git c ...

  4. 【ERROR】---Error executing "adb devices":ADB server didn't ACK

    搭建环境     ionic emulate android 的时候出现问题 端口占用,找到占用端口的程序,结束进程再启动 重新ionic emulate android 还是报错,闪了一下说fail ...

  5. 跟我学习dubbo-使用Maven构建Dubbo服务的可执行jar包(4)

    Dubbo服务的运行方式: 1.使用Servlet容器运行(Tomcat.Jetty等)----不可取 缺点:增加复杂性(端口.管理) 浪费资源(内存) 官方:服务容器是一个standalone的启动 ...

  6. 二维码zxing源码分析(五)精简代码

    由于工作的需要,我并不是需要二维码扫描的所有的功能,我只是需要扫一扫,并显示出来图片和url就行,于是我们就要精简代码了,源码已经分析完了,精简起来就方便多了,源码分析请看 二维码zxing源码分析( ...

  7. PictureBox控件鼠标进入的手形改变和提示

    PictureBox控件载入了图片后,如果要设置其为链接作用的功能,一般需要当鼠标移动到其上时鼠标自动变为手形以提示用户此时可以点击,如果图形无法方便辨识链接的具体功能,最好此时给与一定提示. 1.鼠 ...

  8. Iframe跨域_ASP.NET

    1.描述: A系统 需要 调用 B系统的页面,被调用的B系统的页面b.html内部嵌套了iframe框架c.aspx地址页 2.问题呈现: ie浏览器下 Chrome浏览器下 追踪 3.问题原因: X ...

  9. a href 相对路径 与绝对路径

    <a href="/abc/">内容</a> <a href="abc/">内容</a>的区别,相对路径绝对路径 ...

  10. [老老实实学WCF] 第八篇 实例化

    老老实实学WCF 第八篇 实例化 通过上一篇的学习,我们简单地了解了会话,我们知道服务端和客户端之间可以建立会话连接,也可以建立非会话连接,通信的绑定和服务协定的 ServiceContract 的S ...