一、删除前缀 '*'

 #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. (一)u-boot2013.01.01 for TQ210:《Uboot简介》

    一直想写一个s5pv210硬件平台的u-boot的移植文档,但一直都忙着没时间写.先写一些u-boot的脚本分析吧,包括makefile,mkconfig,config.mk,主要侧重于语法句意的分析 ...

  2. OpenShare新功能@2014年10月

    新功能@ Oct,2014 增强“应用中心”(就是“企业应用门户”功能):在Dock上增加“应用中心”图标,使得用户无论在任何页面,任何位置,永远都是点击一下即可进入任一企业应用,而无需回退到门户主页 ...

  3. innerHTML与innerText的PK

    一.innerText属性用来定义对象所要输出的文本,在本例中innerText把对象it中的文本"您喜欢看微微一笑很倾城吗?"变成了"超级喜欢!"(语句it. ...

  4. Oracle 学习笔记3:新建数据库没有scott用户解决办法

    新建一个数据库,若选择Oracle组件时,没有选择实例方案,完成后进行口令管理,默认列表中是找不到scott用户解锁的.若要解锁scott用户,可以进行如下操作: 使用system或者sys连接数据库 ...

  5. JAVA之网页截屏

    先吐槽一下下: 表示接近两个月没有敲代码了,现在看一下代码都感觉有点生了.三天打鱼两天晒网是不行的,再说我本来就有“健忘症”,真的是木有办法啊 ̄へ ̄.我一直信奉一句话:“勤能补拙”,它也是我学习路上的 ...

  6. sql server实用工具sql prompt的安装与注册

    说起 sql prompt ,相信一直在sql server 领域摸爬滚打的技术人员们,并不陌生. 它是一款拥有SQL智能提示功能的SQL ServerVS插件.SQL Prompt能根据数据库的对象 ...

  7. JQuery处理json与ajax返回JSON实例

    一.JSON的一些基础知识. JSON中对象通过“{}”来标识,一个“{}”代表一个对象,如{“AreaId”:”123”},对象的值是键值对的形式(key:value). “[]”,标识数组,数组内 ...

  8. [转] 正则表达式 oracle

    地址:http://www.cnblogs.com/Azhu/archive/2012/04/03/2431127.html 从oracle database 10gsql 开发指南中copy的. 正 ...

  9. sql 计算两时间或日期 的相差的 年、 月、 日、时、分、秒,年、月、日分别的提取

    --年.月.日.时.分.秒 datediff(yy,date1,date2) datediff(m,date1,date2) datediff(d,date1,date2) datediff(hh,d ...

  10. UI3_UIViewController生命周期

    // // SecondViewController.h // UI3_UIViewController生命周期 // // Created by zhangxueming on 15/7/2. // ...